55:Valid Parentheses
来源:互联网 发布:如何优化英语教学 编辑:程序博客网 时间:2024/06/10 09:18
题目:Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.
The brackets must close in the correct order, “()” and “()[]” are all valid but “(]” and “([)]” are not.
解题代码一:
// 时间复杂度 O(n),空间复杂度 O(n)class Solution {public: bool isValid(string s) { stack<char> bracket; for (int i = 0; i != s.size(); ++i) { if (s[i] == ')') { if (!bracket.empty() && bracket.top() == '(') bracket.pop(); else return false; } else if (s[i] == ']') { if (!bracket.empty() && bracket.top() == '[') bracket.pop(); else return false; } else if (s[i] == '}') { if (!bracket.empty() && bracket.top() == '{') bracket.pop(); else return false; } else bracket.push(s[i]); }/* if (bracket.empty()) return true; else return false;*/ return bracket.empty(); }};
上面的代码 if… else 语句过多,比较冗杂,如果再考虑其它的括号,比如大括号等等,则会更加冗杂,下面的代码则更为精简
// 时间复杂度 O(n),空间复杂度 O(n)class Solution {public: bool isValid(string s) { string left = "([{"; string right = ")]}"; stack<char> bracket; for (int i = 0; i != s.size(); ++i) { auto index = right.find(s[i]); if (index != string::npos) { // s[i] 属于 ')', ']' 或 '}' if(!bracket.empty() && bracket.top() == left[index]) bracket.pop(); else return false; } else bracket.push(s[i]); }/* if (bracket.empty()) return true; else return false;*/ return bracket.empty(); }}
0 0
- 55: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
- Asp.Net MVC学习总结(二)——控制器与动作(Controller And Action)
- Qt之线程QThread
- 多线程的使用
- C++基础2:结构体、联合体、枚举
- 代理服务器工作原理
- 55:Valid Parentheses
- JavaScript闭包的理解
- Heavy Transportation POJ
- int 单个字符转
- jdk源码之String
- linux3.4 和linux2.6的区别
- 一张表里,不同字段,值相同的两条记录,查询这两条记录中不同字段的语句
- 《Linux内核设计与实现》——内存管理
- 处理inline元素之间换行产生的空白