20. 有效的括号-leetcode
2018-04-05 13:55
423 查看
给定一个只包括
解决这道题目就是使用了堆栈的思想,刚开始我是没有思路的,知道后来想起来,通过堆栈的后进先出,判断是否形成对应的括号,来解决问题。下面粘贴出来代码
'(',
')',
'{',
'}',
'[',
']'的字符串,判断字符串是否有效。括号必须以正确的顺序关闭,
"()"和
"()[]{}"是有效的但是
"(]"和
"([)]"不是。
解决这道题目就是使用了堆栈的思想,刚开始我是没有思路的,知道后来想起来,通过堆栈的后进先出,判断是否形成对应的括号,来解决问题。下面粘贴出来代码
class Solution { public: bool isValid(string s) { stack<char> str; for(int i = 0; i < s.length(); i++) { if(s[i] == '{' || s[i] == '(' || s[i] == '[') str.push(s[i]); else if(s[i] == ')') { if(str.empty()) //如果判断当前的字符为),且堆栈为空,说明之前的没有(与之对应的,故返回错误 return false; else { if(str.top() == '(') { str.pop(); continue; } else return false; } } else if(s[i] == '}') { if(str.empty()) //原因与上类似 return false; else { if(str.top() == '{') { str.pop(); continue; } else return false; } } else if(s[i] == ']') { if(str.empty()) //原因与上类似 return false; else { if(str.top() == '[') { str.pop(); continue; } else return false; } } } if(str.empty()) //当所有的字符串配对完成且没有错误时,对战应该为空,所以返回正确 return true; else return false; } };
相关文章推荐
- leetcode20 Valid Parentheses 有效的括号
- Leetcode20. 有效的括号
- [leetcode]20. Valid Parentheses ,有效的括号符串python实现【easy】
- LeetCode 20 Valid Parentheses(有效的括号)
- Leetcode刷题记——20. Valid Parentheses (有效的括号即括号匹配)
- LeetCode 20. 有效的括号
- leetCode 20.Valid Parentheses (有效的括号) 解题思路和方法
- leetCode 20.Valid Parentheses (有效的括号) 解题思路和方法
- leetcode 括号组合题目 20 是否是有效括号 32 最大有效括号 301 去掉无效括号
- LeetCode-20-Valid Parentheses(有效的括号)
- LeetCode 20. Valid Parentheses--验证括号是否有效
- LeetCode - 20. 有效的括号
- LeetCodet题解--20. Valid Parentheses(括号匹配问题)
- Leetcode:Generate Parentheses 生成有效括号对
- [LeetCode]35. Valid Parentheses有效括号
- leetcode 20 Valid Parentheses 括号匹配
- LeetCode( Valid Parentheses)有效的括号
- LeetCode 32 Longest Valid Parentheses(最长有效括号)(*)
- leetcode_20. Valid Parentheses 括号匹配问题;java String实例的声明和初始化;没用栈;
- LeetCode20——Valid Parentheses(括号匹配问题,使用栈的知识)