【发布时间】:2017-07-03 14:57:40
【问题描述】:
在取两个单词后,利用递归判断第一个单词的字母是否包含在第二个单词的 ANY ORDER 中。
我们只能使用 .charAt 字符串方法,.contains 也是不允许的。
我想从第一个单词的第一个字符开始,看看它是否等于 charAt 第二个单词的长度 -1,然后返回一个长度为 -1 的子字符串,但这不能正常工作。
public static boolean containedWordsCheck(String firstWord,String secondWord) {
//Recursion
if (firstWord.charAt(0) == secondWord.charAt(secondWord.length()-1))
return containedWordsCheck(firstWord.substring(1, firstWord.length()-1),secondWord.substring(1, secondWord.length() - 1));
//If it reaches this far it means the letters in the first string aren't contained in the second string
return false;
【问题讨论】:
-
如果第一个词是
"apple",那么第二个词中一定要有两个p吗? -
如果第二个单词中的字符可以以任何顺序,则您的逻辑将失败,因为您将第一个单词中的第一个字符与 last 第二个单词中的字符,但不是第二个单词中的任何其他字符。 “以任何顺序”意味着该字符可以在第二个单词中的任何位置,对吗?你的逻辑还有其他错误,但无论如何你都需要想出一个更好的计划。
-
你学习过循环吗?
-
如果允许使用字符串缓冲区或子字符串,也许我可以看到递归点。如果不是,很难看出,但如果你的教授坚持,当然可以使用递归。 :-)
-
containedWordsCheck("abbbb","aaaba") 必须是真还是假?