1 条题解

  • 0
    @ 2026-4-2 19:31:12
    #include <iostream>
    #include <string>
    #include <cctype>
    using namespace std;
    
    int main() {
        // 1. 重定向文件输入输出
        freopen("count.in", "r", stdin);
        freopen("count.out", "w", stdout);
        
        // 2. 初始化计数数组(A-Z对应0-25)
        int count[26] = {0};
        string s;
        
        // 3. 读取整行输入(避免cin >> s的截断问题)
        getline(cin, s);
        
        // 4. 统计字符次数(统一转大写,传统循环兼容所有编译器)
        int len = s.length();
        for (int i = 0; i < len; i++) {
            char ch = s[i];
            // 确保只处理英文字母(题目说输入仅含大小写字母,此判断可省略,仅做冗余保护)
            if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
                ch = toupper(ch); // 小写转大写,大写不变
                count[ch - 'A']++;
            }
        }
        
        // 5. 找最大次数 + ASCII最小的字母
        int max_count = 0;
        char res_char = 'A';
        for (int i = 0; i < 26; i++) {
            if (count[i] > max_count) {
                max_count = count[i];
                res_char = 'A' + i;
            }
        }
        
        // 6. 输出:次数 字符(严格匹配样例格式)
        cout << max_count << " " << res_char;
        
        // 关闭文件
        fclose(stdin);
        fclose(stdout);
        return 0;
    }
    

    信息

    ID
    165
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    180
    已通过
    41
    上传者