import java.util.Stack; //导入java自带Stack包
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>(); //实例化字符型stack类
for (int i = 0; i < s.length(); i++){
char c = s.charAt(i); //charAt()返回指定索引字符
if (c == '(' || c == '{' || c == '[')
stack.push(c); //推入
else {
if (stack.isEmpty()) //表示第一个输入为右符号
return false;
char topChar = stack.pop();
if (c == ')' && topChar != '(')
return false;
if (c == '}' && topChar != '{')
return false;
if (c == ']' && topChar != '[')
return false;
}
}
return stack.isEmpty(); //防止左括号有剩
}
}
如果想做测试可以添加
public static void main(String[] args){
System.out.println(new Solution().isValid("{}[]()"));
}
运行结果
true