栈应用:括号匹配

1:普通字符串括号匹配

#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool mat(char,char);
int if_match(string);
int main(){string a;cin>>a;cout<<if_match(a)<<endl;return 0;
}
bool mat(char a,char b){if(a=='(')return b==')';if(a=='[')return b==']';if(a=='{')return b=='}';return 0;
}
int if_match(string input){//返回第一个不匹配的位置stack<char> t;int il=input.length();for(int i=0;i<il;i++){if(input[i]=='('||input[i]=='['||input[i]=='{'){t.push(input[i]);}else if(input[i]==')'||input[i]==']'||input[i]=='}'){if(t.empty()==true){return i;}if(!mat(t.top(),input[i])){return i;}else {t.pop();}}}if(t.empty())return -1;else return il-1;
}

2:仅适用于/**/,几种括号纯字符串的检测

输入:仅包含'('、')'、'['、']'、'{'、'}'、/、*的字符串

输出:若匹配输出“Yes”,

           若不匹配输出“No”。

#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool mat(char,char);
bool if_match(string);
int main(){string a;cin>>a;if(if_match(a)){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}return 0;
}
bool mat(char a,char b){if(a=='(')return b==')';if(a=='[')return b==']';if(a=='{')return b=='}';return 0;
}
bool if_match(string input){///*==<,*/==>stack<char> t;int il=input.length();for(int i=0;i<il;i++){//cout<<i<<' '<<(t.empty()?'?':t.top())<<endl;if(i<il-1){if(input[i]=='*'&&input[i+1]!='/'){return 0;}if(input[i]=='/'&&input[i+1]!='*'){return 0;}if(input[i]=='/'&&input[i+1]=='*'){t.push('<');i++;}if(input[i]=='*'&&input[i+1]=='/'){if(t.empty()==true){return 0;}if(t.top()=='<'){t.pop();i++;}else {return 0;}}}else{if(input[i]=='*'||input[i]=='/')return 0;}if(input[i]=='('||input[i]=='['||input[i]=='{'){t.push(input[i]);}else if(input[i]==')'||input[i]==']'||input[i]=='}'){if(t.empty()==true){return 0;}if(!mat(t.top(),input[i])){return 0;}else {t.pop();}}}return t.empty();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/78309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

某东h5st_5.1(补环境)

JS逆向实战——某东h5st_5.1&#xff08;补环境&#xff09; 声明网站流程分析结果展示总结 声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无…

新增Webhook通知功能,文档目录树展示性能优化,zyplayer-doc 2.5.1 发布啦!

zyplayer-doc是一款适合企业和个人使用的WIKI知识库管理工具&#xff0c;支持在线编辑富文本、Markdown、表格、Office文档、API接口、思维导图、Drawio以及任意的文本文件&#xff0c;支持基于知识库的AI问答&#xff0c;专为私有化部署而设计&#xff0c;最大程度上保证企业或…

macOS安全隐私最佳实践分析

1. 引言 随着数字世界的不断扩展&#xff0c;个人和组织面临的安全与隐私威胁也日益增加。作为专业的安全合规与隐私保护研究团队&#xff0c;Kaamel 对 macOS 系统的安全隐私现状进行了全面分析&#xff0c;并提出了一系列最佳实践建议&#xff0c;旨在帮助用户更好地保护自己…

架构设计之异地多活与单元化(Set化)

公司的业务到达一定规模后,往往会考虑做多数据中心。一方面是面临业务增长带来的挑战,单个数据中心变得难以支撑;另一方面出于对业务容灾的考量,也可能在多个城市建立数据中心达到容灾目的。单元化(Set化)是作为异地多活的一个解决方案。 一、什么是异地多活 异地多活是…

Kettle学习

一、Kettle 简介 Kettle(现称为 Pentaho Data Integration)是一款开源ETL工具,支持从多种数据源抽取、转换和加载数据,广泛应用于数据仓库构建、数据迁移和清洗。其核心优势包括: 可视化操作:通过拖拽组件设计数据处理流程(转换和作业)。多数据源支持:数据库(MySQL/…

苹果计划2026年底前实现美版iPhone“印度造”,以减轻关税及地缘政治风险

基于 6 个来源 据多家媒体报道&#xff0c;苹果公司计划在2026年底前&#xff0c;实现在印度组装销往美国的大部分或全部iPhone手机&#xff0c;以减轻关税和地缘政治紧张局势带来的风险。这一目标意味着苹果需将印度的iPhone产量增加一倍以上&#xff0c;凸显其供应链多元化战…

【C++】googletest_TEST/TEST_F

在 Google Test 框架中&#xff0c;TEST 和 TEST_F 是定义测试用例的两个核心宏&#xff0c;它们的区别主要体现在 测试上下文的管理方式 上。以下是二者的详细对比&#xff1a; 1. TEST 宏 定义方式 TEST(TestSuiteName, TestName) {// 测试逻辑 }特点 独立上下文&#xff…

14-DevOps-快速部署Kubernetes

在学习阶段&#xff0c;为了能快速部署Kubernetes&#xff0c;这里用一个快速安装工具&#xff1a;Kubeode&#xff0c;来完成Kubernetes的部署。 接下来部署一个单机&#xff0c;一主一从的Kubernetes。一主一从都部署在同一台服务器上。 在虚拟机新开一个服务器&#xff0c…

Java 异常处理全解析:从基础到自定义异常的实战指南

Java 异常处理全解析&#xff1a;从基础到自定义异常的实战指南 一、Java 异常体系&#xff1a;Error 与 Exception 的本质区别 1. 异常体系核心架构 Java把异常当作对象来处理&#xff0c;并定义一个基类java.lang.Throwable作为所有异常的超类。 在Java API中已经定义了许…

redis 数据类型新手练习系列——string类型

redis 数据类型 Redis 主要支持以下几种数据类型&#xff1a; &#xff08;1&#xff09;string&#xff08;字符串&#xff09;: 基本的数据存储单元&#xff0c;可以存储字符串、整数或者浮点数。 &#xff08;2&#xff09;hash&#xff08;哈希&#xff09;:一个键值对集…

Android12源码编译及刷机

由于google的AOSP源码拉取经常失败&#xff0c;编译还经常出现各种问题。这里根据香橙派Orange Pi 5 Plus&#xff08;Android12电视镜像&#xff09;源码进行编译演示。 RK芯片的开发板可玩性很高&#xff0c;这里以电视版本android系统为例子&#xff0c;学习的同时还可以当…

从零实现 registry.k8s.io/pause:3.8 镜像的导出与导入

以下是为 registry.k8s.io/pause:3.8 镜像的导出与导入操作定制的完整教程&#xff0c;适用于 Kubernetes 集群中使用 containerd 作为容器运行时的场景。本教程包含详细步骤、常见问题解析及注意事项。 从零实现 registry.k8s.io/pause:3.8 镜像的导出与导入 背景说明 Kuber…

Redis和MQ的区别

redis是一个高性能的key-value数据库&#xff0c;支持消息推送功能&#xff0c;可以当做一个轻量级的队列服务器使用。 redis只是提供一个高性能的、原子操作内存键值队&#xff0c;具有高速访问能力&#xff0c;虽然可以做消息队列的存储&#xff0c;但不具备消息队列的任何功…

Centos7系统防火墙使用教程

CentOS 7是一种常见的Linux操作系统&#xff0c;防火墙作为网络安全的第一道防线&#xff0c;对于服务器的安全至关重要。本文将介绍CentOS 7系统中防火墙的使用教程&#xff0c;包括如何开启、关闭、配置以及防火墙规则的添加和删除。 一、查看防火墙状态 在开始操作之前&am…

Uniapp:navigator(页面跳转)

目录 一、基本概述二、属性说明三、具体使用一、基本概述 页面跳转。该组件类似HTML中的<a>组件,但只能跳转本地页面。目标页面必须在pages.json中注册。 二、属性说明 属性名类型默认值说明平台差异说明urlString应用内的跳转链接,值为相对路径或绝对路径,如:“……

大疆机场及无人机上云(航线规划、指令飞行...)

系统操作预览&#xff1a; 包含一键起飞、指令飞行、云台控制、变焦、航线规划、空域规划、成果数据展示、实时飞行模拟、任务派发等 大疆无人机飞控平台&#xff08;航线规划、机场3、私有化部署&#xff09;_哔哩哔哩_bilibili 2025-04-02 更新 start、 已支持大疆机场3。…

【运维】云端掌控:用Python和Boto3实现AWS资源自动化管理

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在云计算时代,AWS(Amazon Web Services)作为领先的云服务平台,其资源管理的高效性对企业至关重要。本文深入探讨如何利用Python的boto3…

Java ThreadLocal与内存泄漏

当我们利用 ThreadLocal 来管理数据时&#xff0c;我们不可避免地会面临内存泄漏的风险。 原因在于 ThreadLocal 的工作方式。当我们在当前线程的 ThreadLocalMap 中存储一个值时&#xff0c;一旦这个值不再需要&#xff0c;释放它就变得至关重要。如果不这样做&#xff0c;那么…

Linux之netlink(2)libnl使用介绍(1)

Linux之netlink(2)Libnl3使用介绍(1) Author&#xff1a;Onceday Date&#xff1a;2025年4月26日 漫漫长路&#xff0c;才刚刚开始… 全系列文章可查看专栏: Linux内核知识_Once-Day的博客-CSDN博客 本文翻译自libnl3官方文档&#xff1a;Netlink Library (libnl) 参考文档…