[leetcode]: 20. Valid Parentheses
2017-06-04 11:25
405 查看
1.题目
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.
判断字符串中的括号是否匹配
2.分析
需要用到-栈遍历字符串,对于当前字符:
如果是(,{,[,则入栈
如果是),},],则比较栈顶元素与当前字符是否匹配。
3.代码
bool isValid(string s) { stack<int> myStack; for (auto c : s) { if (c == '(' || c == '{' || c == '[')//左括号,入栈 myStack.push(c); else//右括号,比较栈顶元素 { if (!myStack.empty()) { char left = myStack.top(); cout << left << " " << c << endl; if ((left == '('&&c == ')') || (left == '{'&&c == '}') || (left == '['&&c == ']')) myStack.pop(); else//不匹配 return false; } else return false; } } return myStack.empty(); }
或者这样写,更容易明了一些
bool isValid(string s) { stack<char> myStack; for (auto c : s) { if (c == '(') myStack.push(')'); else if (c == '{') myStack.push('}'); else if (c == '[') myStack.push(']'); else if (!myStack.empty() && c == myStack.top()) myStack.pop(); else return false; } return myStack.empty(); }
相关文章推荐
- [LeetCode20]Valid Parentheses
- LeetCode——20. Valid Parentheses
- LeetCode 20: Valid Parentheses
- LeetCode之20---Valid Parentheses
- leetcode 20. Valid Parentheses ---java
- Leetcode_20_Valid Parentheses
- leetcode 20 Valid Parentheses
- LeetCode 20 : Valid Parentheses (Java)
- Leetcode 20 Valid Parentheses stack的应用
- LeetCode20 Valid Parentheses
- leetcode 20 Valid Parentheses
- python写算法题:leetcode: 20. Valid Parentheses
- 蜗牛慢慢爬 LeetCode 20. Valid Parentheses [Difficulty: Easy]
- leetcode 20. Valid Parentheses
- leetcode-20 Valid Parentheses
- 【LEETCODE】20-Valid Parentheses
- 【Leetcode】20. Valid Parentheses【栈】
- 【LeetCode】20 - Valid Parentheses
- LeetCode----20. Valid Parentheses
- 【leetcode】20. Valid Parentheses