使用弹栈
@SuppressWarnings("unused")
public class Test {
@SuppressWarnings("unchecked")
publicstatic void main(String[] args) {
Stringstr = "[()]}";
//定义一个存放字符串的容器
LinkedListlist=new LinkedList();
//取字符并处理
for(int i = 0; i < str.length(); i++) {
charc = str.charAt(i);
//判断字符是左符号还是右符号
//放
if(c == '(') {
list.addLast(')');
}
if(c == '[') {
list.addLast(']');
}
if(c == '{') {
list.addLast('}');
}
//弹出
if(c == ')' || c == ']' || c == '}') {
//判断栈里还有没有字符
if(list.size() == 0) {
System.out.println("栈空了,不匹配");
return;
}
chart = (Character)list.removeLast();
//判断字符是否匹配
if(c != t) {
System.out.println("弹出,不匹配");
return;
}
}
}
//判断栈里还有没有字符
if(list.size() != 0) {
System.out.println("栈没空,不匹配");
return;
}
System.out.println("Well............");
}
/*publicstatic void main(String[] args) {
Stringstr = "([){";
//定义一个存放字符串的容器
Stackstack = new Stack();
//取字符并处理
for(int i = 0; i < str.length(); i++) {
charc = str.charAt(i);
//判断字符是左符号还是右符号
//放
if(c == '(') {
stack.push(')');
}
if(c == '[') {
stack.push(']');
}
if(c == '{') {
stack.push('}');
}
//弹出
if(c == ')' || c == ']' || c == '}') {
//判断栈里还有没有字符
if(stack.size() == 0) {
System.out.println("栈空了,不匹配");
return;
}
chart = (Character) stack.pop();
//判断字符是否匹配
if(c != t) {
System.out.println("弹出,不匹配");
return;
}
}
}
//判断栈里还有没有字符
if(stack.size() != 0) {
System.out.println("栈没空,不匹配");
return;
}
System.out.println("Well............");
}*/
}