ZOJ 1159 487-3279 (STL)

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<map>
#include<string>
using namespace std;
map<string,int> g;
int Symbol(char c)
{
    if(c>='0'&&c<='9')return c-'0';
    if(c=='A'||c=='B'||c=='C')return 2;
    if(c=='D'||c=='E'||c=='F')return 3;
    if(c=='G'||c=='H'||c=='I')return 4;
    if(c=='J'||c=='K'||c=='L')return 5;
    if(c=='M'||c=='N'||c=='O')return 6;
    if(c=='P'||c=='R'||c=='S')return 7;
    if(c=='T'||c=='U'||c=='V')return 8;
    if(c=='W'||c=='X'||c=='Y')return 9;
    return -1;
}

int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        int n,i,j,cnt;
        char tmp[10000],c[10000];
        string str;
        g.clear();//清空
        cin>>n;
        for(i=0;i<n;i++)
        {
            cnt=0;
            cin>>c;
            for(j=0;c[j]!='\0';j++)
            {
                if(Symbol(c[j])!=-1)
                {
                    tmp[cnt++]=Symbol(c[j])+'0';
                }
            }
            str=tmp;
            g[str]++;

        }
        map<string, int>::iterator p;
        int f=0;
        for(p=g.begin();p!=g.end();p++)
        {
            if(p->second>1)
            {
                f=1;
                str=p->first;
                printf("%c%c%c-%c%c%c%c %d\n",str[0],str[1],str[2],str[3],str[4],str[5],str[6],p->second);
            }
        }
        if(f==0)printf("No duplicates.\n");
        if(T>0)printf("\n");
    }


    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章