• 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;
     }
    

  • 相关阅读:
    python之+=与+(转载)
    python之上下文管理器与contextlib
    python之类中的super函数
    python之__dict__与dir(转载)
    python多继承之c3算法(转载)
    python之比较is与==(转载)
    python之鸭子类型
    python之抽象基类
    raindi python魔法函数(一)之__repr__与__str__
    Win7系统无法记住网络访问的凭据怎么办?
  • 原文地址:https://www.cnblogs.com/nanke/p/2116659.html
Copyright © 2020-2023  润新知