当前位置: 代码迷 >> 综合 >> 栈算法 --判断回文--java
  详细解决方案

栈算法 --判断回文--java

热度:96   发布时间:2024-02-13 05:01:36.0

队列:先进先出    如:排队

栈:先进后出    如:弹夹,在装子弹的时候,最后装的一发子弹,是被第一个打出去的。

所谓回文字符串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“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");}}}