Valid Parentheses
来源:互联网 发布:腾讯视频数据分析 编辑:程序博客网 时间:2024/06/04 23:22
为了在运行中避免可能出现的危险,即当string emuStack为空,emuStack.begin()和emuStack.end()是什么。采取的策略是先将emuStack重置为非空,再进行其他操作,这样就永远不可能碰到底部。
#include<iostream>#include<string>using namespace std;class Solution {public: bool isValid(string s) { if(s.size() == 0)return true;string emuStack = "s";string::iterator iter1 = s.begin();string::iterator iter2 = emuStack.begin();for(; iter1 != s.end(); iter1++) {if(*iter1 == '}') {if(*iter2 == '{') {emuStack.erase(iter2);iter2 = emuStack.end() - 1;continue;}}if(*iter1 == ']') {if(*iter2 == '[') {emuStack.erase(iter2);iter2 = emuStack.end() - 1;continue;}}if(*iter1 == ')') {if(*iter2 == '(') {emuStack.erase(iter2);iter2 = emuStack.end() - 1;continue;}}if((*iter1 == '{') || (*iter1 == '}') || (*iter1 == '[') || (*iter1 == ']') || (*iter1 == '(') || (*iter1 == ')')) {emuStack += *iter1;iter2 = emuStack.end() - 1;}}//cout << emuStack << endl;if(emuStack.size() == 1)//cout << "valid" << endl;return true;else//cout << "no valid" << endl;return false;//getchar();//return 1;}};int main() {//string s = "a{b[c(d)e]f}g";string s = "]";Solution solution;cout << solution.isValid(s) << endl;getchar();return 1;}
0 0
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- Valid Parentheses
- AVL树旋转操作图解
- IO系统
- HDU 不容易系列之(4)——考新郎
- 内部类
- 【教材】 用Cheat Engine查找特殊码(简易版)
- Valid Parentheses
- SQLite数据库框架ORMLite与GreenDao的简单比较
- 随笔
- 1244的起源
- hdu 2795 Billboard 线段树 点更新
- 工程Makefile实例
- Microsoft Visual Studio 2010 如何添加控制台调试信息
- GreenDao官方文档翻译
- Hadoop文件解压缩