用递归判断回文序列

判断回文序列

一,题目:判断输入的字符串是否为回文系列。

二,设计思路:

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,调用自身。

posted @ 2019-09-23 19:17  程序那点事  阅读(487)  评论(0编辑  收藏  举报