zoukankan      html  css  js  c++  java
  • pku1002

    这字符串处理够麻烦的,不过居然都可以用库函数解决,倘若是手动对字符串进行预处理,真是难以想象啊

    不过,也不可否认,内存开了超大的,时间也差点超了……

     #include<iostream>
     #include<string>
     #include<map>
     using namespace std;
     map<string, int> s;
     string tele[1000000];
     int main()
     {
         s.clear();
         int n, k = 0;
         cin >> n;
         for (int i = 1; i <= n; i++)
        {
             cin >> tele[i];
             while (tele[i].find('-') != string::npos)//若查找失败,返回string::npos
                 tele[i].erase(tele[i].find('-'), 1);//删除从‘-’起的一个字符
     
             for (int j = 0; j < tele[i].size(); j++)
            {    switch (tele[i][j])
                {
                 case 'A':
                 case 'B':
                 case 'C': tele[i][j] = '2'; break;
                 case 'D':
                 case 'E':
                 case 'F': tele[i][j] = '3'; break;
                 case 'G':
                 case 'H':
                 case 'I': tele[i][j] = '4'; break;
                 case 'J':
                 case 'K':
                 case 'L': tele[i][j] = '5'; break;
                 case 'M':
                 case 'N':
                 case 'O': tele[i][j] = '6'; break;
                 case 'P':
                 case 'R':
                 case 'S': tele[i][j] = '7'; break;
                 case 'T':
                 case 'U':
                 case 'V': tele[i][j] = '8'; break;
                 case 'W':
                 case 'X':
                 case 'Y': tele[i][j] = '9'; break;
                }
            }
            tele[i].insert(3, "-");//在第三个字符后面添加‘-’
            s[tele[i]]++;//键值加一,也就是号码重复的次数累加
         }
          
         for (map<string, int>::iterator iter = s.begin(); iter != s.end(); iter++)
         {    
             if (iter->second > 1)
             cout << iter->first << ' ' << iter->second << endl;
             else k++;
         } 
         if (k >= s.size()) cout << "No duplicates." << endl;//没有重复,则输出"No duplicates."
    	 return 0;
     }
    

  • 相关阅读:
    Server08 R2 Live Migration 测试 Part 6:使用SCVMM 2008 R2进行Live Migration
    Workstation 可成功安装ESX但发现不到本地存储的解决方法
    代码生成器ltscode2.1
    2010面试攻略
    我看代码生成
    程序员如何提高工作效率
    PE格式全分析
    Quartz.NET 2.0 学习笔记(4) :cron表达式
    asp.net 2.0 访问 MySQL 数据库
    My blog.
  • 原文地址:https://www.cnblogs.com/nanke/p/2116659.html
Copyright © 2011-2022 走看看