给定一个字符串,其中包含字符’(’,’)’,’[’,’]’,’{‘,’}’,左括号必须匹配右括号,一对匹配的括号不能单独出现单个左括号或者右括号。如:(()[])有效,[(])无效
空字符串也算是有效的。
class Solution { public: bool isValid(string s) { int len = s.length(); stack<char> Tmp; for(int i=0; i<len; i++) { if(s[i] == ‘(‘ || s[i] == ‘{‘ || s[i] == ‘[‘) { Tmp.push(s[i]); } else if(s[i] == ‘)‘ || s[i] == ‘}‘ || s[i] == ‘]‘) { if(Tmp.empty()) return false; if(s[i] == ‘)‘) { if(Tmp.top() != ‘(‘) { return false; } Tmp.pop(); } else if(s[i] == ‘}‘) { if(Tmp.top() != ‘{‘) { return false; } Tmp.pop(); } else if(s[i] == ‘]‘) { if(Tmp.top() != ‘[‘) { return false; } Tmp.pop(); } } } if(!Tmp.empty()) { return false; } return true; } };
可关注公众号了解更多的面试技巧
原文:https://www.cnblogs.com/yew0/p/11613915.html