简单的栈匹配问题
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnbcaj/
class Solution {
public:
bool isValid(string s) {
stack<char> stk;
for(int i=0;i<s.size();){
//左括号入栈
if(s[i]=='('||s[i]=='['||s[i]=='{'){
stk.push(s[i]);
i++;
}else{
//栈内没有值可以匹配 则false
if(stk.empty()) return false;
//右括号匹配
if((s[i]==')'&&stk.top()=='(')||(s[i]==']'&&stk.top()=='[')||(s[i]=='}'&&stk.top()=='{')){
stk.pop();
i++;
}else{
return false;
}
}
}
if(stk.empty()){
return true;
}else{
return false;
}
}
};
京公网安备 11010502036488号