gpt4 book ai didi

java - 递归回文检查器

转载 作者:行者123 更新时间:2023-12-01 21:40:49 25 4
gpt4 key购买 nike

此方法仅适用于小型输入(例如 xox),但不适用于更复杂的输入(例如 taco cat)。我反复阅读了这段代码,但未能解决问题。我认为存在一个微小的错误,因为我在结构上更改了代码,试图调整我的方法,但无法修复它。

import java.util.Scanner;

public class Palindromes
{
static Scanner scan = new Scanner(System.in);

public static void main (String[] args)
{
System.out.println("Enter a string, human:");
String s=scan.nextLine();

if(palindrome(s)){
System.out.print("This is a palindrome, I am amused Earthling.");
}else{
System.out.print("Don't you know to speak only in palindromes to your alien Overlord?");
}
}

public static boolean palindrome(String s){
s.replace(" ","");

if(s.length()<2){
return true;
}else if(s.charAt(0)==s.charAt(s.length()-1)){
return palindrome(s.substring(1,s.length()-2));
}else{
return false;
}
}

}

最佳答案

有两件事需要解决:

  1. 您忘记将replace的结果赋回s,导致您忽略删除空格的结果。尝试:

    s = s.replace(" ","");
  2. 将子字符串传递给递归调用时出现差一错误。 ending index of substring is exclusive ,因此您从子字符串的末尾修剪了太多的字符。尝试:

    return palindrome(s.substring(1,s.length()-1));

关于java - 递归回文检查器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36488735/

25 4 0