括号匹配流程图
package stack;
public class Match {
public static void main(String[] args) {
String a = "11((()))";
System.out.println(a+"括号匹配?"+isMatch(a));
}
public static boolean isMatch(String string) {
//new 一个栈
StackByLink<String> chars = new StackByLink<>();
//遍历String
for (int i = 0; i < string.length(); i++) {
String c = string.charAt(i) + "";
if (c.equals("(")) {
//左括号入栈
chars.push("(");
} else if (c.equals(")")) {
//右括号出栈
String pop = chars.pop();
if (pop == null) {
return false;
}
}
}
//最后栈里是否剩余左括号,剩余左括号不匹配,不剩余左括号匹配成功
return chars.size() == 0;
}
}