编写一个用例,从标准输入中读取一个文本流并使用栈判定其中的括号是否配对完整。例如,对于[ ( ) ] { } { [ ( ) ( ) ] ( ) } 程序应该打印true,对于[ ( ] ) 则打印false。
package Algorithm;
import edu.princeton.cs.algs4.*;
public class Parentheses {
public static void main(String[] args) {
Stack<String> s = new Stack<String>();
while (!StdIn.isEmpty()) {
String str = StdIn.readString();
if (!str.equals(")") && !str.equals("]") && !str.equals("}"))
s.push(str);
else if (str.equals(")") && s.pop().equals("(") || str.equals("]") && s.pop().equals("[")
|| str.equals("}") && s.pop().equals("{")) {
if (s.isEmpty() && StdIn.isEmpty()) {
StdOut.println(true);
return;
}
} else {
if (s.isEmpty()) {
StdOut.println(false);
return;
}
}
}
}
}