gpt4 book ai didi

java - 使用递归方法来确定一个单词是否是 elf-ish

转载 作者:行者123 更新时间:2023-12-01 19:39:56 26 4
gpt4 key购买 nike

public static boolean Xish

此方法应按以下顺序接受两个参数:要检查的单词的字符串和由要检查的字母组成的字符串。例如,如果一个单词以任意顺序包含字母 e、l 和 f,则该单词被视为 elf-ish (“waffle”, “rainleaf”)该方法的真实返回值为 Xish(“waffle”, ”elf”) 。如果要检查某个字母多次出现,则该字母必须在搜索词中出现多次。如果单词包含所有需要的字符,则返回 true;如果不包含所有字符,则返回 false。

这是我到目前为止所拥有的,但我不知道如何记忆该方法并检查是否存在多次出现(第二部分)。

public static boolean Xish(String check, String letters) {
String word = check;
String contains= letters;

if(word.indexOf(contains) >= 0)
return true;
else
return false;
}

最佳答案

实际上,递归执行此操作也可以解决多次出现的问题。

首先,您自己的方法并不真正正确 - 它会查找单词中的整个字母。也就是说,如果 letterself,那么 self 将会返回 true,但 heartfelt 则不会返回 true,并且那是错误的。您应该查找各个字母,因为顺序并不重要。

对于递归:

  1. 如果字母是空字符串 - 返回 true。你可以说,只要没有限制,任何词都可以。

  2. 如果check 是空字符串 - 返回 false。空字符串不包含letters中的字母(并且我们已经知道letters不为空)。

  3. 字母中的第一个字母。在检查中查找它。如果不存在,则返回 false。

  4. 如果存在,则调用相同的方法,但仅传递 checkletters 的剩余部分。例如,如果 checkselfish 并且 letterself,那么您会发现 e 存在。返回Xish("slfish","lf")的结果。这将处理多次发生的情况。您可以通过使用substring并连接适用的部分来实现这一点。

如果多次出现不是问题,您可以按原样将检查传递到下一级递归。但由于它们很重要,我们需要为请求的每个字母删除一个字母,以确保我们不会在下一次出现时再次匹配相同的位置。

关于java - 使用递归方法来确定一个单词是否是 elf-ish,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59182272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com