我正在尝试使用Java中的递归创建Palindrome程序,但是我被困住了,这是我到目前为止所拥有的:
public static void main (String[] args){
System.out.println(isPalindrome("noon"));
System.out.println(isPalindrome("Madam I'm Adam"));
System.out.println(isPalindrome("A man, a plan, a canal, Panama"));
System.out.println(isPalindrome("A Toyota"));
System.out.println(isPalindrome("Not a Palindrome"));
System.out.println(isPalindrome("asdfghfdsa"));
}
public static boolean isPalindrome(String in){
if(in.equals(" ") || in.length() == 1 ) return true;
in= in.toUpperCase();
if(Character.isLetter(in.charAt(0))
}
public static boolean isPalindromeHelper(String in){
if(in.equals("") || in.length()==1){
return true;
}
}
}
谁能提供解决我问题的方法?
在这里,我为您粘贴代码:
但是,我强烈建议您了解其工作原理,
从您的问题出发,您是完全不可读的。
尝试理解此代码。 阅读代码中的注释
import java.util.Scanner;
public class Palindromes
{
public static boolean isPal(String s)
{
if(s.length() == 0 || s.length() == 1)
// if length =0 OR 1 then it is
return true;
if(s.charAt(0) == s.charAt(s.length()-1))
// check for first and last char of String:
// if they are same then do the same thing for a substring
// with first and last char removed. and carry on this
// until you string completes or condition fails
return isPal(s.substring(1, s.length()-1));
// if its not the case than string is not.
return false;
}
public static void main(String[]args)
{
Scanner sc = new Scanner(System.in);
System.out.println("type a word to check if its a palindrome or not");
String x = sc.nextLine();
if(isPal(x))
System.out.println(x + " is a palindrome");
else
System.out.println(x + " is not a palindrome");
}
}
我有两个非递归方法,其中一个读取字符串中的总“e”字符,另一个检查 ArrayList 是否按字母顺序排列。 递归方法的定义是方法调用自身。我相信我理解这个概念,但要实现它或将其转换为递归方法确实很困难。我怎样才能将这些方法转化为递归方法,同时我应该如何思考?此外,这是我的另一种方法,它只打印出指定数字大小的数字。 条件方法检查数字的第一个数字(从右起)是否大于第二个数字,并再次检查第二个是否大于
我试图用C++中的回溯和递归来解决C++中的幻方问题。特别适用于4x4数组。 4x4幻方解的一个例子如下,其中每行、每列和对角线加34: 我所做的更改是:用户输入一些值,这些值将启动算法。 我的算法是这样的: 在这里你可以更好地欣赏图像。 我有一个概念,算法应该如何工作,以解决幻方的问题,回溯和递归,但我有问题。 其中之一是: 成就并没有让我的算法“忽略”用户已经输入的值。 我在C++中的代码在G
我正在开发高级培养皿网络编辑器/模拟器。首先,这里有一些词汇 圆圈=位置 矩形=过渡 就地整数 = 标记 过渡状态=防护 我被困在通过过渡的守卫。守卫是一个条件,如果你想执行转换,这需要是真的。我知道我应该以某种方式使用回溯,但我不知道在程序开始之前进入过渡的位置数,所以我不能使用循环,因为我不知道我需要多少个循环。 所以,我想从第一位获取第一个令牌,从第二位获取第一令牌,然后尝试通过守卫,如果通
该程序检查单词数组中的单词是否为回文(单词向前拼写与向后拼写相同)。 Main中的foreach循环将数组中的每个单词传递给IsPalindrome()函数;它测试单词,并相应地返回True或False。 由于当前数组中的每个单词都是回文,因此当程序运行时,它应该输出所有当前单词,后跟True。但是,它给了我False。为什么?
假设N是根号,三者将创建N-1,N-2,N-3的左中右节点。 EX: 等。 我的 TreeNode 类具有以下变量: 每当我构造一个整数大于 28 的树时,我都会得到一个 OutOfMemoryError。我的递归方法是效率低下还是很自然?谢谢!
问题内容: 我有两个使用YML子集的JSON格式的文件,其中一个是设备列表,另一个是列出特定类型设备属性的文件。 将设备实例列表分为一个文件,将属性分为另一个文件的选择是为了使设备制造商可以更改属性,而不必返回并重新编写/重新编译硬编码属性。 无论如何,我可以对JSONParser使用两个不同的调用,然后最后将属性列表添加到Device对象,但是这种解决方案似乎浪费了代码,因为while循环的