Arnis:一座把真实城市搬进Minecraft的“桥“,一键地图生成
2026/10/3 13:37:47
给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。
有效字符串需满足:
通常利用栈去实现该功能,一般都是左右括号进行匹配,遍历括号组,若是左括号则把右括号压入栈,若是右括号则与栈顶进行匹配,如果匹配不上就false,如果匹配上了就把栈顶出栈,最后最后最后还要判断是否有残留的括号!!!
class Solution { public: bool isValid(string s) { if (s.size() % 2 != 0) return false; stack<char> st; for (int i = 0; i < s.size(); i++) { if (s[i] == '(') st.push(')'); else if (s[i] == '[') st.push(']'); else if (s[i] == '{') st.push('}'); else if (st.empty() || st.top() != s[i]) return false; //遍历进来的没和栈顶匹配上就是不合格 else st.pop(); } return st.empty(); } };