题目:
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
代码实现:
class Solution {
public boolean isValid(String s) {
char[] arr = s.toCharArray();
int length = arr.length;
if(length % 2 == 1){
return false;
}
Stack stack = new Stack();
for(int i = 0; i < length; i++){
if(arr[i] == '(' || arr[i] == '{' || arr[i] == '['){
stack.add(arr[i]);
}
if(stack.isEmpty()){
return false;
}
if(arr[i] == ')'){
if((char)stack.pop() != '('){
return false;
}
}
if(arr[i] == '}'){
if((char)stack.pop() != '{'){
return false;
}
}
if(arr[i] == ']'){
if((char)stack.pop() != '['){
return false;
}
}
}
if(!stack.isEmpty()){
return false;
}
return true;
}
}