public class zifuP {
public static void main(String[] args) {
// TODO Auto-generated method stub
/**
* 判断字符是否匹配,通过一个栈来判断
* 判断栈是否为空,如果不为空,弹出元素进行匹配
* 如果为空,将字符放进去,然后再放下一个,再次进行匹配
* 最后判断栈是否为空,如果为空,说明匹配成功
* 否则匹配失败
*/
LinkedList<Character> stack=new LinkedList<Character>();
String s="()<>{}";//字符匹配问题
for(int i=0;i<s.length();i++) {
char c =s.charAt(i);
if(stack.isEmpty()) {
stack.push(c);//进栈
}
else {
char top =stack.peek();//弹出一个元素给top
if(top-c==-1||top-c==-2) {
stack.pop();//出栈
}
}
}
if(stack.isEmpty()) {
System.out.println("字符是匹配的");
}
else {
System.out.println("字符不是匹配的");
}
}
}