一.题目要求
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
二.题目难度
简单
三.输入样例
示例 1:
输入:s = “()”
输出:true
示例 2:
输入:s = “()[]{}”
输出:true
示例 3:
输入:s = “(]”
输出:false
提示:
1 <= s.length <= 104
s 仅由括号 ‘()[]{}’ 组成
四.解题思路
匹配右括号记得判空
五.代码实现
class Solution {
public:bool isValid(string s) {stack<char> stk;for(string::iterator it = s.begin(); it != s.end(); it++){if(*it == '{' || *it == '(' || *it == '[')stk.push(*it);if(*it == '}') {if(!stk.empty() && stk.top() == '{') stk.pop();else stk.push(*it);}if(*it == ']') {if(!stk.empty() && stk.top() == '[') stk.pop();else stk.push(*it);}if(*it == ')') {if(!stk.empty() && stk.top() == '(') stk.pop();else stk.push(*it);}}return stk.empty();}
};
六.题目总结
–