博客
关于我
487-3279 POJ-1022【前导0~思维漏洞】
阅读量:517 次
发布时间:2019-03-08

本文共 1497 字,大约阅读时间需要 4 分钟。

为了解决这个问题,我们需要将每个大写字母转换为对应的数字,并统计这些数字字符串的出现次数,找出出现次数>=2的字符串。处理过程中需要注意前导0的保留和减号的处理。

方法思路

  • 字母映射:使用一个映射将大写字母转换为对应的数字。从'A'到'Y',每个字母对应一个数字,跳过'Q'。
  • 字符串处理:对于每个输入字符串,逐个字符处理,将字母替换为对应的数字,数字保留,减号作为分隔符。
  • 数字字符串构建:将处理后的字符组合成一个数字字符串,确保保留前导0。
  • 统计次数:使用一个映射统计每个数字字符串的出现次数。
  • 输出结果:找出出现次数>=2的数字字符串并输出,保留前导0。
  • 解决代码

    #include 
    #include
    #include
    #include
    #include
    using namespace std;map
    createCharMap() { map
    char_map; char current_char = '2'; for (char c = 'A'; c <= 'Y'; ++c) { if (c != 'Q') { char_map[c] = current_char; if ((current_char - '0') % 3 == 0) { current_char++; } } } return char_map;}int main() { map
    char_map = createCharMap(); int t; cin >> t; while (t--) { string s; cin >> s; map
    count_map; string current_num = ""; for (char c : s) { if (c == '-') { if (!current_num.empty()) { count_map[current_num]++; current_num = ""; } continue; } if (c >= '0' && c <= '9') { current_num += c; } else if (c >= 'A' && c <= 'Z') { if (char_map.find(c) != char_map.end()) { current_num += char_map[c]; } else { continue; } } } if (!current_num.empty()) { count_map[current_num]++; } int found = 0; for (auto& pair : count_map) { if (pair.second >= 2) { cout << pair.first << endl; found++; } } if (!found) { cout << "No duplicates.\n"; } } return 0;}

    代码解释

  • 字符映射初始化createCharMap函数初始化一个映射,将大写字母转换为对应的数字。
  • 读取输入:读取输入的字符串,逐个字符处理。
  • 字符处理:字母替换为对应数字,数字保留,减号作为分隔符。
  • 数字字符串构建:将字符组合成一个数字字符串,确保保留前导0。
  • 统计次数:使用count_map统计每个数字字符串的出现次数。
  • 输出结果:找出出现次数>=2的字符串并输出,保留前导0。
  • 转载地址:http://reziz.baihongyu.com/

    你可能感兴趣的文章
    抗DDOS攻击
    查看>>
    centos7安装 XtraBackup以及简单数据库备份恢复
    查看>>
    "getchar();"的作用
    查看>>
    Vue实现文本框自动获取焦点
    查看>>
    请你谈谈Redis主从复制的理解?
    查看>>
    【ES6(2015)】Object对象
    查看>>
    【ES6(2015)】RegExp
    查看>>
    浅谈持续集成(CI)、持续交付(CD)、持续部署(CD)
    查看>>
    HDU4814——数学,模拟进制转换
    查看>>
    一些JavaSE学习过程中的思路整理(二)(主观性强,持续更新中...)
    查看>>
    JavaScript中如何给按钮设置隐藏与显示属性
    查看>>
    Python——5函数
    查看>>
    C++中如何对单向链表操作
    查看>>
    C++扬帆远航——1
    查看>>
    上周热点回顾(5.3-5.9)
    查看>>
    测试网络联接状况常用命令 ping 使用方法介绍
    查看>>
    【python】Leetcode每日一题-设计停车系统
    查看>>
    【Bootstrap5】精细学习记录
    查看>>
    面试官:这些错误都没见过,还敢说会安装Elasticsearch?
    查看>>
    Java复习面试指南-06为什么要进行数据类型转换?什么情况下会进行自动类型转换?
    查看>>