实现回文字符串判断 -- JAVA 算法学习

本文介绍了一种使用Java实现的回文字符串判断方法。通过将字符串的一半字符存入数组,并与另一半进行比较来判断是否为回文。适用于初学者理解和实践。
大一的时候老师上课的经典例子就是回文字符串判断,我觉得经典,也保留了下来。
很简单的判断,即字符串从前往后输出和从后往前输出都是一样的结果。是不是想到了什么,没错,就是栈(FIFO),用这个就可以很好的解决这个问题啦~
publicclassHuiWenString {
      publicString isHuiWen(Stringstring){
            intmid;
            inttop=0;
            char[]charOne;
            if(string.length()==1)
                  return"Yes";
                  mid=string.length()/2;
            charOne=newchar[mid];
            //System.out.println("mid="+mid);
            for(inti= 0;i<mid;i++){
                  charOne[i]=string.charAt(i);
                  top++;
            }
            top--;
                  //charOne[top] = string.charAt(top);
                  //charOne[i-1] = string.charAt(i-1);
           //System.out.println("top="+top);
           // for(inti=0;i<charOne.length;i++)
            //System.out.println("char="+charOne[i]);
            if(string.length()%2==0){
                  System.out.println("s-mid="+string.charAt(mid)+"c-top="+charOne[top]);
                  System.out.println(string.charAt(mid)!=charOne[top]);
                  if(string.charAt(mid)!=charOne[top]){
                        return"NO1";
                  }else{      
                        top--;
                  for(intj=mid+1;j<string.length()-1;j++)
                        if(string.charAt(j)!=charOne[top--])
                              return"NO2";
                  }
                  return"YES";
            }else
                  for(intk=mid+1;k<string.length()-1;k++)
                        if(string.charAt(k)!=charOne[top--])
                        return"NO3";
            if(top==0)
            return"YES";
            return"Error";
      }
      publicstaticvoidmain(String[]args) {
            Scannerscanner=newScanner(System.in);
            System.out.println("请输入待判断的字符串:");
            Stringstring=scanner.nextLine();
            HuiWenStringhuiWenString=newHuiWenString();
            System.out.println(huiWenString.isHuiWen(string));
            
      }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值