給定一個只包括 '(',')','{','}','[',']' 的字串,判斷字串是否有效
阿新 • • 發佈:2018-12-11
class Solution { public boolean isValid(String s) { Stack<Character> stack= new Stack<Character>(); for(char c:s.toCharArray()){ if(c=='(') stack.push(')'); else if(c=='[') stack.push(']'); else if(c=='{') stack.push('}'); else if(stack.isEmpty()||stack.pop()!=c) return false; } return stack.isEmpty(); } }
首先把字串裡面的左括號所對應的右括號進棧,當遇到不是左括號的時候,就判斷這個括號是否和剛進棧的字元一樣。 在查完之前,如果棧為空,說明這個字元之前的括號都是配對的,並且這個是右括號,返回false 例如;’([]){’ 前四個字元配對,第五個沒有配對的,所以返回false. 如果有不理解的地方,請聯絡我