gpt4 book ai didi

javascript - 在不使用 split 方法的情况下找到字符串中最长的单词

转载 作者:行者123 更新时间:2023-11-30 11:05:04 25 4
gpt4 key购买 nike

我的老师要求我们尝试构建一个函数,在不使用 str.split() 方法的情况下查找字符串中单词的最长长度。该函数应将字符串作为参数并输出最长单词的长度。

到目前为止,我已经尝试创建一个函数,使用 .push 方法将字符串放入一个数组,然后尝试将该数组分解为每个单独的单词,并在每个子数组中找到每个单词的长度,然后进行比较。因为我不够聪明或没有足够的经验来做这件事,我的一个 friend 告诉我试试看:

> "just use two “tracking” variables. One to keep track of the current word and one to keep track of the longest word seen so far I will let you think about the initial values of what these should be. Next, it is just a matter of iterating through each character of str (strings are iterable just like arrays) to “build” a word. When you come across a space character or then end of str you know you have a complete word. You compare the length of this word with the current longest word (your other tracking variable) and assign the larger of the two to your longest word tracking variable. At the very end of the iteration your longest word tracking variable will contain the longest word length which you can return.Note: You will need to reset the word variable after you check it’s length, so it does not continue “building” through the rest of the iteration." >

我不太确定他的意思或该怎么做。

到目前为止我有这个:

function findLongestWordLength(str) {
let words = []

words.push(str);



console.log(words)



}

findLongestWordLength("The quick brown fox jumped over the lazy dog");

我该怎么办?我已将字符串推送到一个数组,但现在我的 friend 给了我提示,我不确定该怎么做。

最佳答案

Loop through each character in the string , 添加到当前单词。如果遇到空格,请检查当前单词是否比前一个最长单词长。如果是,请存储它。如果不是,则什么也不做。

清除当前单词并继续在字符串中移动。

function findLongestWordLength(str) {
let longestWord = "";
let currentWord = "";

//Move through the string letter-by-letter
for (let i = 0; i < str.length; i++) {
if (str.charAt(i) === " ") { //If we're at a space character
if (currentWord.length > longestWord.length) longestWord = currentWord; //Check if that word was the longest
currentWord = ""; //Reset the current word
} else {
currentWord += str.charAt(i); //Not at a space character, still building the current word
}
}
if (currentWord > longestWord) longestWord = currentWord; //End of string - check current word once more
return longestWord;
}

const longest = findLongestWordLength("The quick brown fox jumped over the lazy dog");
console.log(longest);

关于javascript - 在不使用 split 方法的情况下找到字符串中最长的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55987809/

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