【小白刷题之路Day27】leetcode20 有效的括号
- leetcode20 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: false 示例 5: 输入: "{[]}" 输出: true 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
我的C++代码:
class Solution { public: bool isValid(string s) { stack<char> char_stack; for (int i=0; i<s.size(); ++i){ if (s[i]=='(' || s[i]=='[' || s[i]=='{'){ char_stack.push(s[i]); continue; } if (s[i]==')' && (char_stack.empty() || char_stack.top()!='(')) return false; if (s[i]==']' && (char_stack.empty() || char_stack.top()!='[')) return false; if (s[i]=='}' && (char_stack.empty() || char_stack.top()!='{')) return false; char_stack.pop(); } if (!char_stack.empty()) return false; return true; } };
跟其他代码题解对比,我觉得思路与可读性不差。
总结:
- 这道题属于简单题,栈的最基本最基本问题,学会了使用C++ STL 中stack使用即可。
- 暂无。