POJ1002-487-3279

http://poj.org/problem?id=1002

方法好理解好写。。。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
char pn[100000][8];
int main(void)
{
    int i,j,n,c,mark=1;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        j=0;
        while(j<7)
         {
             if(!isalnum(c=getchar())) 
             continue;
          if(c=='A'||c=='B'||c=='C') 
             c='2';
          if(c=='D'||c=='E'||c=='F') 
             c='3';
          if(c=='G'||c=='H'||c=='I') 
             c='4';
          if(c=='J'||c=='K'||c=='L') 
             c='5';
          if(c=='M'||c=='N'||c=='O') 
             c='6';
          if(c=='P'||c=='R'||c=='S') 
             c='7';
          if(c=='T'||c=='U'||c=='V') 
             c='8';
          if(c=='W'||c=='X'||c=='Y') 
             c='9';
          pn[i][j++]=c;
        }
        pn[i][7]='\0';
   }
   qsort(pn,n,8,(int(*)(const void *,const void *))strcmp);
   j=0;
   for(i=1;i<n;i++)
   {
         if(strcmp(pn[i],pn[j])!=0)
       {
             if(i-j>1)
           {
                  printf ("%c%c%c-%s %d\n",pn[j][0],pn[j][1],pn[j][2],pn[j]+3,i-j);
               mark=0;
           }
           j=i;
       }
  }
  if(i-j>1)
  {
        printf("%c%c%c-%s %d\n",pn[j][0],pn[j][1],pn[j][2],pn[j]+3,i-j);
      mark=0;
  }
  if(mark)
     printf("No duplicates.\n");
  return 0;
}
posted @ 2012-08-29 12:32  Yogurt Shen  阅读(184)  评论(0编辑  收藏  举报