Bootstrap

东方博宜1107 - 求英文句子中的最长单词

问题描述
一个英文句子(长度不超过 255 ),只含有字母和空格,输出最长的一个单词。如有多个长度相同的单词,则输出最前面的一个。

输入
一个字符串。

输出
输出最长的单词。

样例
输入
in which four coins
输出
which

C++

#include <iostream>
#include <string>
using namespace std;

string findLongestWord(const string& sentence) {
    string longestWord = "";
    string currentWord = "";

    for (char c : sentence) {
        if (c == ' ') {
            if (currentWord.length() > longestWord.length()) {
                longestWord = currentWord;
            }
            currentWord = "";
        } else {
            currentWord += c;
        }
    }

    if (currentWord.length() > longestWord.length()) {
        longestWord = currentWord;
    }

    return longestWord;
}

int main() {
    string sentence;
    getline(cin, sentence);

    string longestWord = findLongestWord(sentence);
    cout << longestWord << endl;

    return 0;
}

当需要找到给定句子中最长的单词时,我们可以遍历整个句子并将其分割成单词。我们可以使用一个字符串变量 currentWord 来保存当前正在构建的单词,然后遍历句子中的每个字符。

对于每个字符,如果它是一个空格,说明当前单词已经结束,我们将检查当前单词的长度是否大于之前找到的最长单词的长度。如果是,我们将当前单词赋值给 longestWord 变量。然后,我们将 currentWord 重置为空字符串,为下一个单词的构建做准备。如果字符不是空格,我们将其添加到 currentWord 变量中,继续构建当前单词。

当我们遍历完整个句子后,最后一个单词可能没有遇到空格而结束,因此我们需要再次检查 currentWord 的长度是否大于 longestWord 的长度,并更新 longestWord

最后,我们返回找到的最长单词 longestWord

main 函数中,我们首先读取输入的句子,并将其保存在字符串变量 sentence 中。然后,我们调用 findLongestWord 函数,将 sentence 作为参数传递给它。找到的最长单词将保存在变量 longestWord 中,并输出到标准输出流中。

希望这样的解释对您有帮助。如果您对代码或解释有任何疑问,请随时提问。

;