解题思路:
JavaScrip中,用数组来模拟栈的操作。
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
if(s.length%2==1)
return false;
const dic={')': '(', ']': '[', '}': '{'};
const stack = [];
for(let i=0;i<s.length;++i){
if(s[i]=='('||s[i]=='['||s[i]=='{'){
stack.push(s[i]);
}
else if(dic[s[i]]==stack[stack.length-1])
stack.pop();
else
return false;
}
if(stack.length==0)
return true;
else
return false;
};
另一种方法
在评论区看到一个大佬用python字符替换的方式做出来了,当场被震撼。
class Solution:
def isValid(self, s: str) -> bool:
while '()' in s or '[]' in s or '{}' in s:
s = s.replace('()','').replace('[]','').replace('{}','')
return s==''