top1编程
← 返回题目
题解

最大的单词

1 条题解

  • 0
    @ 2026-8-5 10:15:42

    解题思路

    找出字典序最大的单词,就像“打擂台”:

    1. 先读入第 1 个单词,把它当作目前的最大值 best;
    2. 之后每读入一个单词 w,就和 best 比一比,如果 w 更大,就更新 best;
    3. 所有单词读完后,best 就是最大的那个。

    什么是“字典序”?就像查英文字典:先比第 1 个字母,第 1 个字母大的就大;第 1 个字母相同,再比第 2 个字母……依次类推。C++ 里字符串直接用 > 比较,规则就是字典序,不用我们手工比较。

    用样例验证:依次读入 lesson、table、pen、zool、cup,擂台上一路比下来,最后 zool 最大,输出 zool,和样例一致。

    参考代码

    // P4552 最大的单词:找出字典序最大的单词
    #include <iostream>
    #include <string>
    using namespace std;
    int main() {
        int n;
        cin >> n;
        string best;              // 记录目前最大的单词
        for (int i = 0; i < n; i++) {
            string w;
            cin >> w;
            // 第一个单词先存下,之后每次都和当前最大比较
            if (i == 0 || w > best) best = w;
        }
        cout << best << endl;
        return 0;
    }
    

    复杂度分析

    • 要读入并比较 n 个单词,每个单词长度不超过 50,比较一次字符串最坏 O(50)。
    • 总时间复杂度 O(n × 50),空间复杂度 O(1)(只用一个变量存最大单词)。
    • 1