利用链栈编写代码 给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。
时间: 2024-06-01 10:10:01 浏览: 21
#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main()
{
string str;
getline(cin, str); //输入字符串
stack<char> st; //定义栈
for(int i=0; i<str.size(); i++)
{
if(str[i]=='(' || str[i]=='[' || str[i]=='{') //遇到左括号入栈
st.push(str[i]);
else if(str[i]==')' || str[i]==']' || str[i]=='}') //遇到右括号
{
if(st.empty()) //如果栈为空,说明没有匹配的左括号了,不匹配
{
cout<<"不匹配"<<endl;
return 0;
}
char ch = st.top(); //取出栈顶元素
st.pop(); //弹出栈顶元素
if((ch=='(' && str[i]==')') || (ch=='[' && str[i]==']') || (ch=='{' && str[i]=='}'))
continue; //匹配成功,继续循环
else //不匹配
{
cout<<"不匹配"<<endl;
return 0;
}
}
}
if(st.empty()) //如果栈为空,说明所有左括号都被匹配了,匹配成功
cout<<"匹配"<<endl;
else //否则不匹配
cout<<"不匹配"<<endl;
return 0;
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)