package 括号匹配;
/**
* 利用两个栈,有个栈弹出,一个从栈底部取出元素,如果不匹配则返回false
* */
public class Test {
public static void main(String[] args) {
String s="(asd{dd})";
System.out.println(test(s));
}
public static boolean test(String s){
Stack<Character> stack1=new Stack<Character>();
Stack<Character> stack2=new Stack<Character>();
char [] c=s.toCharArray();
for(int i=0;i<c.length;i++){
if((char)c[i]=='('||(char)c[i]=='{'){
stack1.add((char)c[i]);
}
if((char)c[i]==')'||(char)c[i]=='}'){
stack2.add((char)c[i]);
}
}
System.out.println("start");
while(!stack1.isEmpty()&&!stack2.isEmpty()){
char c1=stack1.pop();
char c2=stack2.remove(0);
System.out.println(c1);
System.out.println(c2);
if((c1=='('&&c2=='}')||(c1=='{'&&c2==')')){
return false;
}
}
if(!stack1.isEmpty()||!stack2.isEmpty()){
return false;
}
System.out.println("end");
return true;
}
}
import java.util.Stack;
/**
* 利用两个栈,有个栈弹出,一个从栈底部取出元素,如果不匹配则返回false
* */
public class Test {
public static void main(String[] args) {
String s="(asd{dd})";
System.out.println(test(s));
}
public static boolean test(String s){
Stack<Character> stack1=new Stack<Character>();
Stack<Character> stack2=new Stack<Character>();
char [] c=s.toCharArray();
for(int i=0;i<c.length;i++){
if((char)c[i]=='('||(char)c[i]=='{'){
stack1.add((char)c[i]);
}
if((char)c[i]==')'||(char)c[i]=='}'){
stack2.add((char)c[i]);
}
}
System.out.println("start");
while(!stack1.isEmpty()&&!stack2.isEmpty()){
char c1=stack1.pop();
char c2=stack2.remove(0);
System.out.println(c1);
System.out.println(c2);
if((c1=='('&&c2=='}')||(c1=='{'&&c2==')')){
return false;
}
}
if(!stack1.isEmpty()||!stack2.isEmpty()){
return false;
}
System.out.println("end");
return true;
}
}