题目描述
解法:
import java.util.*;
public class Solution {
int i = 0;
/**
* 利用栈匹配即可
* @param s string字符串
* @return bool布尔型
*/
public boolean isValid (String s) {
// write code here
if(s==null) return false;
Stack<Character> stack = new Stack<>();
while(i<s.length()){
char c = s.charAt(i);
i++;
switch(c){
case '[':
case '{':
case '(':
//入栈:
stack.push(c);
break;
case ']':
if(stack.isEmpty()) return false;
if(stack.peek()=='['){
//匹配了一个
stack.pop();//出栈
}else return false;
break;
case '}':
if(stack.isEmpty()) return false;
if(stack.peek()=='{'){
//匹配了一个
stack.pop();//出栈
}else return false;
break;
case ')':
if(stack.isEmpty()) return false;
if(stack.peek()=='('){
//匹配了一个
stack.pop();//出栈
}else return false;
break;
default:
}
}
if(!stack.isEmpty()) return false;
return true;
}
}