2 条题解

  • 1
    @ 2025-7-2 1:00:10

    如果会 c++ STL容器 的map的话会很好做

    关于map

    map 是 C++ STL 中的关联容器,它存储的是键值对(key-value pairs),并且会根据键(key)自动排序。在本题中,我们使用 map<char, int> 来统计每个字符出现的次数。

    基本特点:

    自动排序:map 会根据键的值自动进行升序排序
    唯一键:每个键在 map 中只能出现一次
    快速查找:基于红黑树实现,查找效率为 O(log n)

    在本题中的应用:

    charCount[c]++:统计字符 c 出现的次数

    如果 c 不存在,会自动创建并初始化为 0

    然后执行 ++ 操作

    charCount[c] == 1:检查字符 c 是否只出现一次

    关于时间复杂度

    map 查找是 O(log n)

    AC code

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
    string s;
    cin >> s;
    map<char, int> charCount;
    
    for (char c : s) {
        charCount[c]++;
    }
    
    for (char c : s) {
        if (charCount[c] == 1) {
            cout << c << endl;
            return 0;
        }
    }
    
    cout << "no" << endl;
    
    return 0;
    }
    

    信息

    ID
    4560
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    (无)
    递交数
    71
    已通过
    37
    上传者