家人们,看这排序,一看就很简单,对吧?不对,我觉得还挺不是很容易的,哈哈哈。
题解:
在看题目的时候,我一开始的解题思路就挺复杂的。题目说了”左括号必须以正确的顺序闭合“,我完美略过。
这道题是栈的常考题型,应该是吧。我们可以用哈希表的形式,键值对嘛,然后( [ { 这类的入栈,然后碰到其与之相对应的那就出栈,最后的情况那要是栈为空的情况就返回true.反之则返回false,不考虑( [ ) ]的这种情况,如果考虑,那就false了
代码如下:
class Solution {
public:bool isValid(string s) {//解题思路:([{这类的入栈,然后碰到其与之相对应的那就出栈,最后的情况那要是栈为空的情况就返回true.反之则返回false,不考虑([)]的这种情况,如果考虑,那就false了unordered_map<char,char>pairs={{')','('},{']','['},{'}','{'}};stack<char> stk;for(char c:s){if(pairs.count(c)){if(stk.empty()||stk.top()!=pairs[c])return false;stk.pop();}else{stk.push(c);}}return stk.empty();}
};