栈应用-括号匹配
今天網(wǎng)易實(shí)習(xí)生招聘中的筆試有一道是關(guān)于棧的應(yīng)用,應(yīng)用場(chǎng)景為括號(hào)匹配。由于習(xí)慣使用IDE而現(xiàn)場(chǎng)考試環(huán)境為 普通編輯器,擦,考試寫(xiě)著按Ctrl+I能夠自動(dòng)聯(lián)想代碼,
我去,用不了 感覺(jué)自己寫(xiě)的并不怎么樣
現(xiàn)在 自己回來(lái)寫(xiě)了一遍
輸入一串字符串“()【】{}”組成,判斷是否括號(hào)匹配
在我的代碼中 可以連續(xù)無(wú)限次的輸入測(cè)試用例
下面是代碼
package bracker;import java.util.Scanner; import java.util.Stack;/** 輸入一串字符,右“()【】{}”組成,判斷是否匹配* 思路:1 將輸入存入到一串字符串中* 2 將字符串按照順序存入到棧中, 存的時(shí)候?qū)⒃睾蜅m數(shù)脑貙?duì)比,假如相同則彈棧* 3 當(dāng)遍歷完字符串之后,判斷棧是否為空 */ 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();}}總結(jié)一下吧 1 關(guān)于scanner.next的用法
?????????????? 2 關(guān)于判斷要壓棧的元素同棧頂元素的比較
轉(zhuǎn)載于:https://www.cnblogs.com/winAlaugh/p/5309326.html
總結(jié)