LeetCode#20-有效的括號
阿新 • • 發佈:2020-07-06
import java.util.Stack; /* 20. 有效的括號 給定一個只包括 '(',')','{','}','[',']' 的字串,判斷字串是否有效。 有效字串需滿足: 左括號必須用相同型別的右括號閉合。 左括號必須以正確的順序閉合。 注意空字串可被認為是有效字串。 示例 1: 輸入: "()" 輸出: true 示例 2: 輸入: "()[]{}" 輸出: true 示例 3: 輸入: "(]" 輸出: false 示例 4: 輸入: "([)]" 輸出: false 示例 5: 輸入: "{[]}" 輸出: true 思路: 左括號壓入棧, 右括號時候檢視棧頂 */ public class p20 { public static boolean isValid(String s) { char []arr=s.toCharArray(); if(s.length()%2==1)return false; System.out.println(00000000000000); Stack<Character> stack=new Stack<Character>(); System.out.println(1111111111); for(int i=0;i<arr.length;i++){ if(arr[i]=='('||arr[i]=='['||arr[i]=='{'){ stack.push(arr[i]); System.out.println(stack.peek()); } else{ if(!stack.isEmpty()){ if(arr[i]==')'){ System.out.println(stack.peek()); char ch=stack.pop(); System.out.println(ch); if(ch!='(')return false; } else if(arr[i]==']'){ char ch=stack.pop(); if(ch!='[')return false; } else if(arr[i]=='}'){ char ch=stack.pop(); if(ch!='{')return false; } else return false; } else return false; } } if(stack.isEmpty())return true; return false; } public static void main(String[] args) { System.out.println(isValid("(")); }