递归判断回文字符串c语言,递归判断回文

题目介绍:

“回文”是指正着读、反着读都一样的句子。比如“我是谁是我”使用递归算法检测回文的算法描述如下:

A single or zero-character string is a palindrome.Any other string is a palindrome if the first and last characters are

the same, and the string that remains, excepting those characters, is a palindrome.

设计思想:

1.判断字符串长度(n),当字符串长度为0跟1时即是回文。

2.若与1不符,则我们需要对字符串进行递归判断,即拿第(n-1)个字符,第a(length-n)个字符进行比较,若相同则n-1,再比较,如此循环往复,就会出现一个结束点。

3.结束点就是当n为0或为1,若这样即是回文。

4.递归进行的条件是:若第(n-1)个字符,第a(length-n)个字符相同,则将字符串长度-1,若不满足,则直接退出。

代码如下

packagejavatask;importjava.util.Scanner;public classPalindrome {static Scanner in=newScanner(System.in);static char str[] = new char[99];public static voidmain(String [] args)

{

System.out.println("请输入字符串");

String a;

a=in.next();if(Palindrome(a,a.length()))//如果是回文

System.out.println("It's a palindrome");else //如果不是回文

System.out.println("It's not a palindrome");

}static public boolean Palindrome(String a,intn)

{int length=a.length();if(n==1||n==0)return true;else{if (a.charAt(n-1)==a.charAt(length-n)) //第一个字符与最后一个字符比较

return Palindrome(a,--n);//利用递归反复判断

else

return false;//不是回文

}

}

}

运行结果截图

编程总结分析

这道题比较困难的点呢就是怎么用递归来判断以及在字符串如何提取某个字符来操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值