LeetCode第20題 左右括號匹配
阿新 • • 發佈:2019-01-07
第一次提交成功程式碼:
import java.util.Stack; public class Solution { public boolean isValid(String s) { Stack<Character> mystack=new Stack<>(); if(s.isEmpty()) { return true; } for(int i=0;i<s.length();i++) { if(s.charAt(i)=='{'||s.charAt(i)=='['||s.charAt(i)=='(') { mystack.push(s.charAt(i)); } if(s.charAt(i)=='}') { if(mystack.isEmpty()||mystack.pop()!='{') { return false; } } if(s.charAt(i)==']') { if(mystack.isEmpty()||mystack.pop()!='[') { return false; } } if(s.charAt(i)==')') { if(mystack.isEmpty()||mystack.pop()!='(') { return false; } } } if(mystack.isEmpty()) { return true; }else { return false; } } public static void main(String[] args) { Solution sl=new Solution(); System.out.println(sl.isValid("dsffv}")); } }
第二次修改後程式碼:
import java.util.Stack; public class Solution { public boolean isValid(String s) { Stack<Character> mystack=new Stack<>(); for(int i=0;i<s.length();i++) { char c=s.charAt(i); if(c=='{'||c=='['||c=='(') { mystack.push(c); }else if(c=='}'||c==']'||c==')') { if(mystack.isEmpty()) { return false; } char topChar=mystack.pop(); if(c==')'&&topChar!='(') { return false; } if(c==']'&&topChar!='[') { return false; } if(c=='}'&&topChar!='{') { return false; } } } return mystack.isEmpty(); } public static void main(String[] args) { Solution sl=new Solution(); System.out.println(sl.isValid("dhjgui")); } }