栈应用-括号匹配
今天網易實習生招聘中的筆試有一道是關于棧的應用,應用場景為括號匹配。由于習慣使用IDE而現場考試環境為 普通編輯器,擦,考試寫著按Ctrl+I能夠自動聯想代碼,
我去,用不了 感覺自己寫的并不怎么樣
現在 自己回來寫了一遍
輸入一串字符串“()【】{}”組成,判斷是否括號匹配
在我的代碼中 可以連續無限次的輸入測試用例
下面是代碼
package bracker;import java.util.Scanner; import java.util.Stack;/** 輸入一串字符,右“()【】{}”組成,判斷是否匹配* 思路:1 將輸入存入到一串字符串中* 2 將字符串按照順序存入到棧中, 存的時候將元素和棧頂的元素對比,假如相同則彈棧* 3 當遍歷完字符串之后,判斷棧是否為空 */ public class bracketMatching {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while(scanner.hasNext()){String str = scanner.next();Stack<Character> stack = new Stack<Character>();for(int i=0;i<str.length();i++){if(stack.isEmpty())stack.push(str.charAt(i));else if(str.charAt(i)==')' && stack.peek()=='(' || str.charAt(i)==']' && stack.peek()=='[' || str.charAt(i)=='}' && stack.peek()=='{')stack.pop();elsestack.push(str.charAt(i));}if(stack.isEmpty())System.out.println("true");elseSystem.out.println("false");}scanner.close();}}總結一下吧 1 關于scanner.next的用法
?????????????? 2 關于判斷要壓棧的元素同棧頂元素的比較
轉載于:https://www.cnblogs.com/winAlaugh/p/5309326.html
總結