题目描述(简单难度)
解题思路
构造一个栈,利用栈的先进后出的特性进行操作
Java代码
class Solution {
public boolean isValid(String s) {
//1.特判
if(s.isEmpty()) return true;
//2.创建辅助栈
Stack<Character> stack = new Stack<>();
//3.遍历
for(char c : s.toCharArray()){
if(c == '('){
stack.push(')');
}else if(c == '['){
stack.push(']');
}else if(c == '{'){
stack.push('}');
}else if(stack.isEmpty() || c != stack.pop()){
return false;
}
}
//4.返回
return stack.isEmpty();
}
}
python 代码
class Solution:
def isValid(self, s: str) -> bool:
a = []
for i in s:
if i == "(" or i == "{" or i == "[":
a.append(i)
elif i == ")" or i == "}" or i == "]":
a.append(i)
if len(a) == 1:
return False
b = a[-2] + a[-1]
if b == "()" or b == "{}" or b == "[]":
for i in range(2):
a.pop(-1)
if a == []:
return True
else:
return False
if __name__ == '__main__':
s = Solution()
res = s.isValid("(){}[]")
print(res)