新华三:括号匹配
題目:
有表達式:(x+y)*(x-y),驗證是否括號匹配,如果括號匹配請輸出其括號嵌套深度
?
Java:
1 import java.util.Scanner; 2 import java.util.Stack; 3 4 public class Main { 5 6 public static void main(String[] args) { 7 Scanner sc=new Scanner(System.in); 8 while(sc.hasNext()){ 9 String s = sc.nextLine(); 10 Stack<Character> st = new Stack<Character>(); 11 int num = 0; 12 int count = 0; 13 int i = 0; 14 for(; i < s.length(); i++){ 15 switch (s.charAt(i)) { 16 case '(': 17 st.push(s.charAt(i)); 18 count++; 19 if(count > num){ 20 num = count; 21 } 22 break; 23 case ')': 24 if(!st.isEmpty()){ 25 st.pop(); 26 count--; 27 } 28 else{ 29 i = s.length(); 30 } 31 break; 32 33 default: 34 break; 35 } 36 } 37 38 if((count == 0)&&(i==s.length())){ //現場筆試,少寫了后一個判定,這個判定就是為了防止()())這種情況,因為count此時為0 39 System.out.println("完全匹配,最大嵌套數為"+num); 40 } 41 else{ 42 System.out.println("括號不匹配"); 43 } 44 } 45 sc.close(); 46 } 47 48 }?
轉載于:https://www.cnblogs.com/zdtiio/p/7577274.html
總結
- 上一篇: Lumen开发:Lumen的异常处理机制
- 下一篇: 数据结构第八篇——链栈