递归判断字符串是否为回文
package text; import java.util.Scanner; public class lianxi{ public static void main( String args[] ) { Scanner input=new Scanner(System.in); System.out.print("请输入字符串:"); String str=""; str=input.nextLine(); System.out.println(huiwen(str)); } public static boolean huiwen(String str) { int n=str.length(); char f=str.charAt(0); char l=str.charAt(n-1); if(f!=l) return false;
else if(n==1||f==l) return true;
return huiwen(str.substring(1,n-1)); } }
运行结果:![]()
![]()
![]()
递归是一种算法,被广泛应用在程序中。递归是指函数、过程或子程序在运行过程中,直接或间接调用自身而产生的重入现象。递归是计算机科学中的一个重要概念,递归的方法是程序设计中有效的方法,采用递归编写程序能使程序变得简洁和清晰。
所以在判断字符串中的字符是否相同时,除了只有一个字符这种特殊情况,无论字符串的长度是多少,都可以使用一种方法,就是将第一个字符与最后一个字符比较,之后重复调用未判断字符串中的第一个字符和最后一个字符,再进行比较。结束的情况就是判断出来俩字符相等或不等,所以不会进入调用的死循环。选择布尔类型的函数,就是为了保证不重复输出每一次判断的结果。
这种方法不仅使运行结果很简单,还使代码很简洁。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律