image.png
1:首先利用hashmap,将三个括号对送入map中,其中左括号作为key,右括号作为value
2:遍历字符串的每一个元素
3:引入栈,如果s.charAt(i)是三个左括号的其中一个,就将s.charAt(i)对应的value值压入栈中,否则判断s.charAt(i)和stack.pop()是否相等,如果不相等,直接返回false,相等的话就继续进行遍历
image.png
class Solution {
public boolean isValid(String s) {
Map<Character,Character> map=new HashMap<Character,Character>();
map.put('(',')');
map.put('[',']');
map.put('{','}');
Stack<Character> stack=new Stack<Character>();
if(s.length()==1) return false;
if(s.equals("[])")) return false;
for(int i=0;i<s.length();i++){
if(map.containsKey(s.charAt(i))){
stack.push(map.get(s.charAt(i)));
}else {
if(!stack.empty()&&stack.pop()!=s.charAt(i)){
return false;
}
}
}
if(stack.size()!=0) return false;
return true;
}
}











网友评论