回文判断
import java.util.Scanner;
public class JudgingPalindrome {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入要判断的内容");
String text=scanner.nextLine();
ArrayStack<Character> stack=new ArrayStack<Character>();
char c;
for(int i=0;i<text.length();i++){
if(text.length()%2==1&&i==text.length()/2){
continue;
}
c=text.charAt(i);
if(stack.isEmpty()) {
stack.push(c); //如果栈为空直接进
}else{
if(c==stack.peek()){ //看栈顶否和当前字符c相等
stack.pop(); //相等 相消
}else{
stack.push(c); //不相等 直接进
}
}
}
if(stack.isEmpty()){
System.out.println("这是一个回文");
}else{
System.out.println("这不是一个回文");
}
}
}
执行结果
请输入要判断的内容
13431
这是一个回文
括号匹配
public class MatchBracket {
public static void main(String[] args) {
String text="{}";
ArrayStack<Character> stack=new ArrayStack<Character>();
char c;
char top;
for(int i=0;i<text.length();i++){
c=text.charAt(i);
if(stack.isEmpty()){
stack.push(c);
}else{
top=stack.peek();
if(top-c==-1||top-c==-2){
stack.pop();
}else{
stack.push(c);
}
}
}
if(stack.isEmpty()){
System.out.println("他是匹配的");
}else{
System.out.println("不是匹配的");
}
}
}
执行结果
他是匹配的