package work;
import java.util.LinkedList;
public class work_8 {
public static void main(String[] args) {
String s = "...(...[..)..]....{....}..)...(...)..";//做了改动,多加了')',结果不匹配
char[] ca = s.toCharArray();
LinkedList l = new LinkedList();
/*
* 左括号入栈,右括号判断
* 栈为空,入栈,不匹配
*栈不空,判断栈顶元素与之匹配否
*匹配,栈顶元素出栈
*不匹配,则输出不匹配
*/
for(Character i:ca) {
//左括号入栈
if(i == '(' || i== '[' || i == '{') {
l.addLast(i);
}
//右括号判断
if(i == ')' || i== ']' || i == '}') {
//栈为空,入栈,不匹配
if(l.isEmpty()) {
l.addLast(i);
System.out.println("不匹配");
break;
//匹配,栈顶元素出栈
}else if((Character)l.getLast() == '(' && i == ')') {
l.removeLast();
}else if((Character)l.getLast() == '[' && i == ']') {
l.removeLast();
}else if((Character)l.getLast() == '{' && i == '}') {
l.removeLast();
//不匹配,则输出不匹配
}else {
System.out.println("不匹配");
break;
}
}
}
if(l.isEmpty()) {
System.out.println("匹配");
}
}
}