给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
题目比较简单,主要使用的是栈先进后出的结构特性。
class Solution { public: bool isValid(string s) { if(s.size()%2 != 0) return false; if(s.size() == 0) return true; stack<char> sta; for(int i = 0; i < s.size(); i++) { if(s[i]=='{'||s[i]=='['||s[i]=='('){ sta.push(s[i]); } else { cout<< s[i] << ','; if(sta.empty()) return false; if(s[i] =='}'&&(sta.top() !='{' )){ return false; } else if(s[i] == ']'&&(sta.top() != '[')) { return false; }else if(s[i]==')' &&(sta.top() != '(' ) ) { return false; } else { sta.pop(); } } } return sta.empty(); } };