队列:先进先出 如:排队
栈:先进后出 如:弹夹,在装子弹的时候,最后装的一发子弹,是被第一个打出去的。
所谓回文字符串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“aha”和“ahaha”均是回文,但“ahah”不是回文。通过栈这个数据结构我们将很容易判断一个字符串是否为回文
思路:找到回文的中心点,把前半部分放到新的数组中,然后判断新的数组的部分和回文后半部分是否相同
class HuiWen{
public static void main(String[] args) {
char[] lenStr ={'A', ':', ':','A'}; // 需要判断的回文
int top = 0 ;
char[] s = new char[101]; //定义的一个数组
int next;
int mid = lenStr.length/2-1;//找到回文的中心点
for(int i = 0 ;i<=mid; i++){
//把回文的前部分放到新的数组中
s[++top] = lenStr[i] ;
}
//判断字符长度是奇数还是偶数,并找出需要进行字符匹配的起始下标
if(lenStr.length%2 == 0){
next = mid+1;
}else {
next = mid+2;
}
// 开始匹配
for(int n = next; n<=lenStr.length-1; n++){
if(lenStr[n] != s[top]){
break;
}else {
top--;
}
}
//如果top的值为0,则说明栈内的所有的字符都被一一匹配了
if(top == 0){
System.out.println("YES");
}else {
System.out.println("NO");
}
}
}