gpt4 book ai didi

javascript - 单词中出现频率最高的字符串

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

这对 coderbyte 来说是一个挑战,我想我会尝试使用与循环、对象不同的方法来解决它。它通过了,但并不完美。挑战的方向是:

让函数 LetterCountI(str) 获取传递的 str 参数并返回具有最多重复字母数的第一个单词。例如:“今天,是有史以来最伟大的一天!”应该返回最大,因为它有 2 个 e(和 2 个 t)并且它出现在 ever 之前也有 2 个 e。如果没有包含重复字母的单词,则返回 -1。单词将以空格分隔。

 function LetterCountI(str){
var wordsAndLetters = {};
var count = 0;
var finalword;
str = str.split(" ");
for(var i = 0; i < str.length; i++){
wordsAndLetters[str[i]] = wordsAndLetters[str[i]] || 0;
}
function countWordLetters(strs){
strs = strs.split("");
var lettercount = {};
for(var i = 0; i <strs.length; i++){
lettercount[strs[i]] = lettercount[strs[i]] || 0;
lettercount[strs[i]]++;
}
return lettercount;
}
for(var words in wordsAndLetters){
wordsAndLetters[words] = countWordLetters(words);
var highestLetterFrequency = wordsAndLetters[words];
for(var values in highestLetterFrequency){
if(highestLetterFrequency[values] > count){
count = highestLetterFrequency[values];
finalword = words;
}
if(count !== 1){
return finalword;
}
}
}
return -1;
}
LetterCountI("today is the greatest day ever!");

抱歉,如果某些变量名称令人困惑,我已经花了太长时间试图找出我做错了什么。如果您使用代码底部的参数,它会返回“最大”,但应该将参数更改为

LetterCountI("toddday is the greatttttest day ever!");

它在应该记录“greatttttest”时记录“toddday”。我的代码完全错误吗?我意识到如果参数是(“caatt dooog”)它应该记录'caatt'因为有4个重复出现的字母但我并不担心我只是担心它找到一个字母的最重复(但无论如何如果您有解决方案,我想听听!)。如果需要对变量进行任何更改以使此代码更具可读性,我们将不胜感激!

最佳答案

您的代码的问题在于以下代码段的定位:

if(count !== 1){
return finalword;
}

将它从当前位置移动到 return -1 之前,如下所示:

for(var words in wordsAndLetters){
wordsAndLetters[words] = countWordLetters(words);
var highestLetterFrequency = wordsAndLetters[words];
for(var values in highestLetterFrequency){
if(highestLetterFrequency[values] > count){
count = highestLetterFrequency[values];
finalword = words;
}
}
}
if(count !== 1){
return finalword;
}
return -1;

您的原始代码的问题在于您返回的是第一个具有重复字符的单词,这意味着您的代码还不够深入以检查是否有任何后续单词具有更多重复字符。

此外,只是为了好玩,here is my alternative solution .

关于javascript - 单词中出现频率最高的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20371299/

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