首页 > 编程语言 > 详细

Java之递归方法的字符串回文问题

时间:2018-10-12 10:39:15      阅读:108      评论:0      收藏:0      [点我收藏+]

日期:2018.10.12

星期五

博客期:018

  题目:

  技术分享图片

 

  题目分析:本题目因为是要求用递归的,所以大类里就写一个递归方法,在主方法里用字符串调用这个方法就好了!这是大致这个类的框架定位,然后定位我们的递归方法!方法首先分为由判断分为递归域和执行域,一开始我的判断条件是输入的String类型的数据str与""(空串)相比相等!然后return true;递归域写起始字符与末尾字符是否相等,不等return false;相等就return 递归方法(参数为减去起始字符与末尾字符后的字符串),这就存在一定的问题——就是当字符串str的长度为奇数时,如”abtItba“,此程序无法继续执行!因为最后执行到返回字符串为"I",在删除的时候就会因为删两次,而第二次已经是空串,进而报错!于是,我便更改最初的判断条件为 str和""相等 或者 str.length==1时 return true;就可以了。

 

  解决代码:

   

 1 //如下为判断字符串是否回文的程序
 2 package madeby11;
 3 
 4 public class Palindrome {
 5     public boolean Test(String x){
 6         if(x.compareTo("")==0||x.length()==1)
 7         {
 8             return true;
 9         }
10         else
11         {
12             StringBuffer sb = new StringBuffer(x);
13             char t1,t2;
14             int temp = sb.length();
15             t1 = sb.charAt(0);
16             t2 = sb.charAt(temp-1);
17             sb.deleteCharAt(temp-1);
18             sb.deleteCharAt(0);
19             if(t1==t2)
20                 return Test(sb.toString());
21             else
22                 return false;
23         }
24     }
25     public static void main(String[] args) {
26         Palindrome p = new Palindrome();
27         String str = "SystemmetsyS";
28         System.out.println("Does the \""+str+"\" palindrome ?");
29         if(p.Test(str))
30             System.out.println("Yes!");
31         else
32             System.out.println("No!");
33     }
34 }

 

  解决截图:

  技术分享图片

  技术分享图片

 

Java之递归方法的字符串回文问题

原文:https://www.cnblogs.com/onepersonwholive/p/9776115.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!