迴文判斷
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("不是匹配的");
}
}
}
執行結果
他是匹配的