一、判断一个字符串是否为回文,用递归的方法实现。
二、大体思路:
1、输入一个字符串;
2、将字符串存到字符数组中再进行前后对应字符的比较;
3、直到满足剩余最后一个或零个字符时,才是回文;
三、源代码:
1 package org.yuan.Day2; 2 3 import java.util.Scanner; 4 5 public class Palindrome { 6 7 public static void main(String[] args) { 8 System.out.println("请输入一个字符串:"); 9 Scanner sc=new Scanner(System.in); 10 String s = sc.next(); 11 boolean huiwen = palindrom(s, 0 , s.length() ); 12 System.out.println(huiwen); 13 sc.close(); 14 } 15 public static boolean palindrom(String s,int i,int length){ 16 if(length-2*i == 1 || length-2*i == 0) 17 return true;//当满足到最后剩余字符个数为1或0时,才为回文 18 if ((s.toCharArray()[i] != s.toCharArray()[length-1-i]) || (i >= length-1-i)) { //将字符串转换成字符数组,比较前后对应字符是否相等 19 return false; 20 } 21 return palindrom(s, ++i, length);//递归 22 } 23 } 24
四、总结:
递归就是自己调用自己,重复相同的步骤,但是有限制条件能够来结束这个递归函数。递归可以将复杂的问题分成一个一个小问题,大大的减少代码量。