题目要求:使用递归方式判断某个字串是否是回文( palindrome )回文”是指正着读、反着读都一样的句子。比如“我是谁是我”
设计思想:首先能实现可输出任意字符串,然后定义返回值数据类型,判断递归结束条件的方法是在递归函数中通过将字符串转换为数组的方法来判断字符串中首尾位置是否相同,以此类推直到整个字符串判断完。
代码:
import java.util.Scanner;
public class digui {
static Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
System.out.print("请输入一个字符串:");
String str=sc.next(); //输入一个想要判断的字符串
boolean mm=find(str,0,str.length());
System.out.println(mm);
}
private static boolean find(String str,int n1,int n2) {
if(n2<=1) //判断递归结束条件
return true;
else if(str.toCharArray()[n1]==str.toCharArray()[n2-1]){ //判断递归结束条件
return find(str,n1+1,n2-1);
}
return false;
}
}
运行结果:
编程总结分析:递归就是把一个问题分解为若干个规模较小、与原问题形式相同的子问题,这些子问题可以用相同的解题思路来解决。从程序实现的角度而言,我们需要抽象出一个干净利落的重复的逻辑,以便使用相同的方式解决子问题。