Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
Parentheses.java Parentheses.java Below is the syntax highlighted version of Parentheses.java from §4.3 Stacks and Queues. /****************************************************************************** * Compilation: javac Parentheses.java * Execution: java Parentheses < file.txt * Dependencies: StdIn.java Stack.java * * Reads in a text file and checks to see if the paretheses, curly * braces, and square brackets are balanced. * * % java java Parentheses * [()]{}{[()()]()} * true * * % java Parentheses * [(]) * false * ******************************************************************************/ public class Parentheses { private static final char L_PAREN = '('; private static final char R_PAREN = ')'; private static final char L_BRACE = '{'; private static final char R_BRACE = '}'; private static final char L_BRACKET = '['; private static final char R_BRACKET = ']'; public static boolean isBalanced(String s) { Stack stack = new Stack(); for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == L_PAREN) stack.push(L_PAREN); else if (s.charAt(i) == L_BRACE) stack.push(L_BRACE); else if (s.charAt(i) == L_BRACKET) stack.push(L_BRACKET); else if (s.charAt(i) == R_PAREN) { if (stack.isEmpty()) return false; if (stack.pop() != L_PAREN) return false; } else if (s.charAt(i) == R_BRACE) { if (stack.isEmpty()) return false; if (stack.pop() != L_BRACE) return false; } else if (s.charAt(i) == R_BRACKET) { if (stack.isEmpty()) return false; if (stack.pop() != L_BRACKET) return false; } // ignore all other characters } return stack.isEmpty(); } public static void main(String[] args) { String s = StdIn.readAll(); StdOut.println(isBalanced(s)); } } Copyright © 2000–2017, Robert Sedgewick and Kevin Wayne. Last updated: Fri Oct 20 14:12:12 EDT 2017.