标签:
这个题目我采用了两种方案,第一种方案代码行数相对较少,但效率稍低,第二种方案参照网上的进行改进代码行数相对多些,但效率稍高。
import java.util.HashMap;
import java.util.Map;
public class Solution {
public boolean isValid(String s) {
Map<Character,Character> map=new HashMap<Character,Character>();
map.put(']','[');
map.put('}','{');
map.put(')','(');
Stack<Character> st=new Stack<Character>();
for(int i=0;i<s.length();i++){
Character c=s.charAt(i);
if(c==']'||c=='}'||c==')'){
if(st.size()==0)return false;
Character top=st.peek();
if(top.equals(map.get(c))){
st.pop();
}else{
return false;
}
}else{
st.push(c);
}
}
return st.size()==0?true:false;
}
}import java.util.HashMap;
import java.util.Map;
public class Solution {
public boolean isValid(String s) {
Stack<Character> st = new Stack<Character>();
for (int i = 0; i < s.length(); i++) {
Character c = s.charAt(i);
if ((c == ']') || (c == '}') || (c == ')')) {
if (st.empty()) {
return false;
}
Character pre = st.peek();
switch (c) {
case ')':
if (pre == '(') {
st.pop();
} else {
return false;
}
break;
case '}':
if (pre == '{') {
st.pop();
} else {
return false;
}
break;
case ']':
if (pre == '[') {
st.pop();
} else {
return false;
}
break;
}
} else {
st.push(c);
}
}
return st.empty() ? true : false;
}
}
标签:
原文地址:http://blog.csdn.net/wj512416359/article/details/42063591