博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
符号匹配
阅读量:5096 次
发布时间:2019-06-13

本文共 2862 字,大约阅读时间需要 9 分钟。

bool isbalance(const string &str){    string::size_type len = str.size();    stack
Mystack; for(string::size_type i = 0; i < len ; ++ i) { /*first selection*/ if(str[i] == '[' || str[i] == '{
' || str[i] == '(' || str[i] == '<') { Mystack.push(str[i]); } /*如果是对称的符号,则从栈中弹出*/ if(str[i] == ']' || str[i] == '}' || str[i] == ')' || str[i] == '>') { /*如果栈中没有对象,则说明不平衡*/ if(Mystack.empty()) { cout << "the string is Unblanced" << endl; return false; } /*采用switch-case语句判断*/ switch(str[i]) { case ']': { /*判断是否是匹配的*/ char tem = Mystack.top(); Mystack.pop(); if('[' != tem) { cout << "Can not blanced with ]" << endl; return false; } break; } case ')': { /*判断是否是匹配的*/ char tem = Mystack.top(); Mystack.pop(); if('(' != tem) { cout << "Can not blanced with )" << endl; return false; } break; } case '}': { /*判断是否是匹配的*/ char tem = Mystack.top(); Mystack.pop(); if('{
' != tem) { cout << "Can not blanced with }" << endl; return false; } break; } case '>': { /*判断是否是匹配的*/ char tem = Mystack.top(); Mystack.pop(); if('<' != tem) { cout << "Can not blanced with >" << endl; return false; } break; } /*一般的非对称字符*/ default: break; } } } /************************************************ *当所有对象遍历完成以后,需要判断栈中是否存在对象 *栈中为空说明是平衡的,非空则说明是非空的对象 ************************************************/ if(Mystack.empty()) { cout << "string is blanced!!" << endl; return true; } else/*没有正确的匹配,并输出具体不匹配的符号*/ { char tem = Mystack.top(); Mystack.pop(); cout << tem << " " << "Unblance string!!" << endl; return false; }}

 

转载于:https://www.cnblogs.com/shanguanghui/archive/2013/04/01/2993947.html

你可能感兴趣的文章
HDU 4635 Strongly connected
查看>>
格式化输出数字和时间
查看>>
页面中公用的全选按钮,单选按钮组件的编写
查看>>
java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
查看>>
(旧笔记搬家)struts.xml中单独页面跳转的配置
查看>>
不定期周末福利:数据结构与算法学习书单
查看>>
关于TFS2010使用常见问题
查看>>
URL编码与解码
查看>>
Eclipse 安装SVN插件
查看>>
阿里云服务器CentOS6.9安装Mysql
查看>>
剑指offer系列6:数值的整数次方
查看>>
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>
生活大爆炸之何为光速
查看>>
[Typescript] Specify Exact Values with TypeScript’s Literal Types
查看>>
Illustrated C#学习笔记(一)
查看>>
理解oracle中连接和会话
查看>>
Scrapy实战篇(三)之爬取豆瓣电影短评
查看>>