20. 有效的括号

 
  
import java.util.Arrays; class Solution { public boolean isValid(String s) { char[] chs=s.toCharArray(); char[] stack=new char[s.length()]; char r=' '; String couple=""; int top=-1; for(char c:chs){ if(c=='('||c=='{'||c=='['){ top++; stack[top]=c; }else if(c==')'||c=='}'||c==']'){ if(top<0){ return false; } r= stack[top]; top--; couple=String.valueOf(r)+String.valueOf(c); if(!compareS(couple)){ return false; } } } if(top<0){ return true; }else{ return false; } } public boolean compareS(String s){ char l=s.charAt(0); char r=s.charAt(1); if( (l=='('&& r==')')|| (l=='['&& r==']')|| (l=='{'&& r=='}') ){return true; }else{ return false; } } }
其实是栈的实现,临近的两个括号必然是配对的。

你可能感兴趣的:(LeetCode刷题,JAVA练练手)