使用stack
简单一题做的复杂了
public class Solution {
public boolean isValid(String s) {
Stack<Character> st = new Stack<Character>();
int i = 0;
char bracket = '0';
boolean flag = true;
while( i<s.length() && flag == true){
if (s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{'){
st.push(s.charAt(i));
}
if (s.charAt(i) == ')' || s.charAt(i) == ']' || s.charAt(i) == '}' ){
if(!st.isEmpty()){
bracket = st.pop();
flag = matchMark(bracket,s.charAt(i));
}
else{
flag=false;
}
}
i++;
}
if (!flag) return false;
if (!st.empty()) return false; //if parenthese, all elements pushed in should be pop out
else return true;
//return flag;
}
private boolean matchMark(char c, char d) {
// TODO Auto-generated method stub
if(c == '(' && d == ')') return true;
if(c == '{' && d == '}') return true;
if(c == '[' && d == ']') return true;
else return false;
}
}