用递归调用来判断字符串是否是回文
Posted dazhi151
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用递归调用来判断字符串是否是回文相关的知识,希望对你有一定的参考价值。
思路:先判断字符串的长度,当为1时就是回文的字符串,之后如果大于1,就调用函数进行判断。通过返回值对其是否是回文进行输出。
在函数中主要是传入字符串数组还有两个参数,经两个参数作为下标,通过字符串的CharAt函数对字符串的相应部分进行比较,最后进行两个参数,前面的加一后面的减1,逐渐向中间靠拢。依次进行比较、当只剩下一个或者两个时对其进行另外的分析。
其主要的代码如下:
package chengZhang; import java.util.Scanner; public class JieCheng public static int diaoyong(String c,int a,int b) if(a==b)//当时奇数时候 return 1; if(a+1==b)//当是偶数时候并且只有两个了 if(c.charAt(a)==c.charAt(b))//进行两边 的比较 return 1; else return -1; else if(c.charAt(a)==c.charAt(b)) a+=1; b-=1; return diaoyong(c,a,b);//递归调用 else return -1; public static void main(String[] args) Scanner sc=new Scanner(System.in); String wen=sc.nextLine(); int w1=wen.length()-1; if(w1==0)//只有一个字符时 System.out.println("是回文"); else if(diaoyong(wen,0,w1)==1) System.out.println("是回文"); else if(diaoyong(wen,0,w1)==-1) System.out.println("不是回文");
重要的是递归调用,其函数要调用自己本身。最后重要的一点是应用字符串的CharAt函数将其按照字符数组的样式进行应用以及比较。
以上是关于用递归调用来判断字符串是否是回文的主要内容,如果未能解决你的问题,请参考以下文章
课程作业03:用递归方法计算组合数解决汉诺塔问题判断某个字符串是否回文
C语言:编写一个测试一个串是不是为回文的递归函数,是回文,返回1;不是,返回0。