队列:先进先出 如:排队
栈:先进后出 如:弹夹,在装子弹的时候,最后装的一发子弹,是被第一个打出去的。
所谓回文字符串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“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");}}}