遍历元素,遇到左括号就存到数据结构中,遇到右括号就去找左括号数据结构的头位置,用map判断是右括号与左括号否配对。
class Solution {
public boolean isValid(String s) {
if(s==null||s.length()==0)
return true;
Map<Character, Character>map=new HashMap<>();
map.put(')', '(');
map.put('}', '{');
map.put(']', '[');
Deque<Character>dp=new ArrayDeque<>();
for(char c:s.toCharArray())
{
if(c=='('||c=='['||c=='{')
dp.push(c);
else
{
if(dp.size()==0||map.get(c)!=dp.pop())
return false;
}
}
return dp.size()==0;
}
}