简单的栈匹配问题
给定一个只包括 '(',')','{','}','[',']' 的字符串 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; } } };