判斷字串中的括號是否匹配
阿新 • • 發佈:2019-01-07
思路:括號匹配可以用棧來解決,當輸入的是左括號時,將其壓入棧中,輸入的是右括號時,判斷棧是否為空,為空則匹配失敗,否則取棧頂元素判斷其是否與當前右括號匹
配。這樣直到字串輸入結束時,若棧為空則匹配成功,否則匹配失敗。
import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); String s=scanner.nextLine(); Stack<Character> stack=new Stack<Character>(); char c; char temp; for(int i=0;i<s.length();i++){ c=s.charAt(i); if(c=='('||c=='['||c=='{'){ stack.add(c); }else if(c==')'||c==']'||c=='}'){ if(stack.isEmpty()){ System.out.println("false"); System.exit(0); } temp=stack.peek(); switch(c){ case ')': if(temp=='('){ stack.pop(); break; }else{ System.out.println("false"); System.exit(0); } case ']': if(temp=='['){ stack.pop(); break; }else{ System.out.println("false"); System.exit(0); } case '}': if(temp=='{'){ stack.pop(); break; }else{ System.out.println("false"); System.exit(0); } } } } if(stack.isEmpty()){ System.out.println("true"); }else{ System.out.println("false"); } } }