用递归判断回文序列
判断回文序列
一,题目:判断输入的字符串是否为回文系列。
二,设计思路:
1,初始判断若字符串的长度为0或1,一定是回文序列直接返回退出。
2,写终止条件,如果最后剩余一个,则是回文序列返回退出。如果是两个,判断他俩是否相等若相等则f为1否则f为0,返回退出。
3,写一般情况,若收尾相等则n加1,调用自身,如果中途比较前后不等则f为0,返回退出。
三,源代码:
import java.util.Scanner; public class Huiwen { static char []a=new char[1000]; static String str; static int f=0; static int n=0; static Scanner sc=new Scanner(System.in); public static void main(String[] args) { str=sc.nextLine(); a=str.toCharArray(); huiWen(a,n); if(f==0) { System.out.println(str+" : "+"不是回文序列"); } else { System.out.println(str+" : "+"是回文序列"); } } public static void huiWen(char[] a,int n) { if(a.length==1||a.length==0) { f=1; return ; } if(a.length-2*n-1==1) { f=1; return ; } if(a.length-2*n-1==2) { if(a[n]==a[a.length-n-1]) { f=1; return ; } else { f=0; return ; } } if(a[n]==a[a.length-n-1]) { n=n+1; huiWen(a,n); } else { f=0; return ; } } }
四,测试结果
五,结论:
递归三要素:
1,明确终止条件,给出递归结束是的处理办法。
2,提取问题结果,减小问题规模。
3,调用自身。