判断一个字符串是否为回文串
设计思想:
分两种情况:单个字符或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 + "不是回文串"); } }
运行结果截图:
编程总结分析:
递归是函数调用自身,要想运用好递归,需要找到一个问题中重复计算的部分。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步