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


设计思想:

分两种情况:单个字符或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 + "不是回文串");    
    }  
}             

 运行结果截图:

 

 

 

 

 


编程总结分析:

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM