判断一个字符串是否为回文串

设计思想:

分两种情况:单个字符或0个字符是回文串;字符串长度大于1时,从字符串首尾两端先中间夹逼进行字符比较并递归

 

源程序代码:

//用递归实现判断一个字符串是否为回文串

import java.util.Scanner;
public class Palindrome 
 {   //判断是否为回文串   in型参数代表字符串起止位置
    public static boolean isPalindrome(String s,int i,int j){ 
         //递归    
        if(i==j||s.length()==0||s.length()==1)
            return true;
        if(s.charAt(i) == s.charAt(j))
       {
           i++;
           j--;
           return isPalindrome(s,i,j);
       }
        else return false;
            }
            /* return (s.charAt(i) == s.charAt(j)) && isPalindrome(s,i+1,j-1);*/  
            
    public static void main(String[] args){              
        Scanner in=new Scanner(System.in);             
        System.out.println("请输入一个字符串:");
        String str = in.nextLine();
        int i = 0;      
        int j = str.length() - 1;          
        if(isPalindrome(str,i,j)) 
            System.out.println(str + "是回文串");   
        else System.out.println(str + "不是回文串");    
    }  
}             

 运行结果截图:

 

 

 

 

 


编程总结分析:

递归是函数调用自身,要想运用好递归,需要找到一个问题中重复计算的部分。

posted @ 2019-09-23 22:47  祈欢  阅读(2935)  评论(0编辑  收藏  举报