用递归方式判断字符串是否是回文

题目要求:使用递归方式判断某个字串是否是回文( palindrome )回文”是指正着读、反着读都一样的句子。比如“我是谁是我”

设计思想:首先能实现可输出任意字符串,然后定义返回值数据类型,判断递归结束条件的方法是在递归函数中通过将字符串转换为数组的方法来判断字符串中首尾位置是否相同,以此类推直到整个字符串判断完。

代码:

package digui;

import java.util.Scanner;

public class Palindrome {
    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;
}
}
运行结果:
请输入一个字符串:我爱你爱我
true

编程总结分析:

在这道题中体现了递归的思想,即每个递归函数的开头一定是判断递归结束条件是否满足的语句(一般是if语句);函数体一定至少有一句是“自己调用自己”的。每个递归函数一定有一个控制递归可以终结的变量(通常是作为函数的参数而存在)。每次自己调用自己时,此变量会变化(一般是变小),并传送给被调用的函数。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值