Java 栈算法
老师给的资料文件,没有原文链接。。。只能填原创了
import java.util.Scanner;
public class 栈 {
/**
* 先入后出
* 回文判断
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
String insString=scanner.next(); // 接收输入的字符串
char[] aa=insString.toCharArray(); // 字符串转换成数组
int len,mid,next,top; // len长度 mid字符串中间
len=insString.length();
mid=len/2-1;
top=0; // 栈的初始化
char[] temp=new char[mid+2]; // 栈数组
// 将mid前的字符依次入栈
for (int i = 0; i <= mid; i++) {
temp[++top]=aa[i];
}
// 判断字符串长度是奇数还是偶数,找匹配的开始下标
if(len%2==0){
next=mid+1;
}
else {
next=mid+2;
}
// 开始匹配
for (int i = next; i <= len-1; i++) {
if(aa[i]!=temp[top]){
break;
}
top--;
}
if(top==0){
System.out.println("YES");
}
else{
System.out.println("NO");
}
}
}