题目链接:
力扣https://leetcode-cn.com/problems/valid-parentheses/
【分析】栈的经典应用题,遍历字符串,如果遇到 ' ( ' 就先压入栈,如果遇到 ' ) ',栈为空的话直接false,不空的话弹出栈顶看是否是 ' ( ',最后返回栈是否为空即可。
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
int n = s.length(), i;
char c, t;
for(i = 0; i < n; i++){
c = s.charAt(i);
if(c == '(' || c == '[' || c == '{') stack.push(c);
else{
if(stack.empty()) return false;
t = stack.pop();
if(c == ')' && t != '(') return false;
if(c == ']' && t != '[') return false;
if(c == '}' && t != '{') return false;
}
}
return stack.empty();
}
}