括号匹配算法
来源:互联网 发布:电话销售数据 编辑:程序博客网 时间:2024/06/06 23:55
bool IsBracket(char ch){if(ch == '(' || ch == '[' || ch == '{' || ch == ')' || ch == ']' || ch == '}'){return true;}return false;}bool MatchBracket(char* str, size_t size){int idx = 0;stack<char> s;for(idx = 0;idx <= size; idx++){if(!IsBracket(str[idx])) { str[idx+1]; continue; }if(str[idx] == '(' || str[idx] == '[' || str[idx] == '{'){s.push(str[idx]);continue;}if(str[idx] == ')' || str[idx] == ']' || str[idx] == '}'){if(s.empty() == 1){ cout<<"右括号多于左括号"<<endl; return false;}else{char con = s.top();if((str[idx] == ')'&&con == '(' )|| (str[idx] == ']'&&con== '[') || (str[idx] == '}'&&con=='{')) { s.pop(); } else{cout<<"匹配不正确"<<endl;return false;}}}} if(s.empty() == 1){cout<<"匹配成功"<<endl;return true;}else{cout<<"左括号多于右括号"<<endl;return false;}}int main(){ char* str1 = "{(})[]";char* str2 = "{}())[]";char* str3 = "a[]b";char* str4 = "{()[]";int size1 = strlen(str1);int size2 = strlen(str2);int size3 = strlen(str3);int size4 = strlen(str4);MatchBracket(str1, size1);MatchBracket(str2, size2);MatchBracket(str3, size3);MatchBracket(str4, size4);system("pause");return 0;}
运行结果
0 0
- java括号匹配算法
- 括号匹配算法思想
- 验证括号匹配-算法
- 趣味算法-括号匹配
- 括号匹配算法
- java括号匹配算法
- 括号匹配算法
- 括号匹配算法
- 匹配括号的算法
- 括号匹配算法
- java 括号匹配算法
- 括号匹配算法
- 括号匹配算法
- 括号匹配算法
- 括号匹配 算法
- 括号匹配算法
- 括号匹配算法
- 括号匹配算法
- c++第四次上机作业
- 凸优化工具包CVX的安装注册
- 文章标题
- 欢迎使用CSDN-markdown编辑器
- 并发(Concurrency). VS 并行(Parallelism).
- 括号匹配算法
- Angular2 指令—自定义指令
- 微信小程序开发者常见FAQ之二
- wtc6508bsi,键释放引发的问题分析及解决
- tf.cast
- Large Margin Object Tracking with Circulant Feature Maps
- ulimit -a详解
- 面向对象
- select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET