1、题目
2、思路
这题,我不记得哪里抄的了,我觉得很精妙,反向思维,,直接看代码,代码中我都给出注释。。
3、代码
import java.util.*;
public class Solution {
/**
*
* @param s string字符串
* @return bool布尔型
*/
public boolean isValid (String s) {
// write code here
if (s == null || s.length() == 0){
return true;
}
Stack<Character> stack = new Stack<>();
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == '('){
stack.push(')');
}
else if (chars[i] == '['){
stack.push(']');
}
else if (chars[i] == '{'){
stack.push('}');
}
// 这里是判断,只要不满足的上面三种的情况,弹出并进行比较即可
else if (stack.isEmpty() || chars[i] != stack.pop()){
return false;
}
}
return stack.isEmpty();
}
}