gpt4 book ai didi

Java:确定一个单词是否包含可以在另一个单词中找到的字母?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:10:49 25 4
gpt4 key购买 nike

例如:如果您有一个字符串“magikarp”,并且针对“karma”对其进行了测试,这就是正确的,因为构成“karma”的所有字母都可以在“magikarp”中找到。

“kipp”会返回 false,因为“magikarp”中只有一个“p”。

这是我目前的尝试,但我认为它的效率不是很高,而且对于一个字母多次出现的情况,它不会正确返回。

private boolean containsHelper(String word, String word2){      
for (int i = 0; i < word2.length(); i ++){
if (!word.contains(String.valueOf(word2.charAt(i)))){
return false;
}
}
return true;
}

最佳答案

我这里不写程序,但是让你知道怎么做。考虑到复杂性,有两种方法可以做到这一点:

1) 如果您确定在字符串中只会得到 a-z/A-Z 字符,则取一个大小为 26 的数组。遍历第一个字符串并将出现的字符数放在相应的索引中。比如说你有字符串“aabcc”。现在数组看起来像 [2,1,2,0,...0]。现在遍历第二个字符串,在每个字符处,从数组中相应字符位置减去 1 并检查结果值。如果值小于 0,则返回 false。例如你有“aacd”。当你在 d 时,你会做 (0-1),结果 -1 小于 0,因此返回 false。

2) 对每个String中的字符进行排序,然后比较。

关于Java:确定一个单词是否包含可以在另一个单词中找到的字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28756753/

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