给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
示例 1:
示例 2:
示例 3:
提示:
1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成
C++
class Solution { public: bool isValid(string s) { if (s.size() % 2 != 0) return false; stack<char> stk; for (int i = 0; i < s.size(); i++) { if (s[i] == '(') stk.push(')'); else if (s[i] == '{') stk.push('}'); else if (s[i] == '[') stk.push(']'); else if (stk.empty() || stk.top() != s[i]) return false; else stk.pop(); } return stk.empty(); } };
|