uva 755487--3279
生活随笔
收集整理的這篇文章主要介紹了
uva 755487--3279
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這道題WA了很多次,最后發現輸出的時候第三位要帶上‘-’ = =... 而且UVA很坑爹的是不能用strcmpi,strupr!!!! View Code #include<string>
#include<stdlib.h>
#include<cstdio>
#include<stdio.h>
#include<string.h>
typedef struct node
{char num[35];int count;
}tele;
tele tel[100005];
int cmp(const void *a,const void *b)
{return strcmp((*(struct node*)a).num,(*(struct node*)b).num);
}
void transfrom(char str[],char num[])
{int i,j;int len;len = strlen(str);for(i = 0;i < len;i++)if(str[i] >= 'a'&&str[i] <= 'z')str[i] -= 32;for(i =0,j = 0; str[i] != 0;i++){if(isdigit(str[i]))num[j++] = str[i];else if(isalpha(str[i])){if(str[i]<='C' && str[i]>= 'A')num[j++] = '2';if(str[i] <= 'F' && str[i]>= 'D')num[j++] = '3';if(str[i] <= 'I' && str[i] >= 'G')num[j++] = '4';if(str[i] <= 'L' && str[i] >= 'J')num[j++] = '5';if(str[i] <= 'O' && str[i] >= 'M')num[j++] = '6';if(str[i] == 'S' || str[i] == 'P' ||str[i] == 'R')num[j++] = '7';if(str[i] == 'V' ||str[i] == 'T' ||str[i] == 'U' )num[j++] = '8';if(str[i] == 'W' ||str[i] == 'X' ||str[i] == 'Y' )num[j++] = '9';}if(j == 3)num[j++] = '-';}num[j] = '\0';
}
int main()
{int t,n,i,j,count;char str[100],num[15];scanf("%d",&t);while(t--){scanf("%d",&n);for(i = 0;i < n;i++){scanf("%s",str);transfrom(str,num);strcpy(tel[i].num,num);tel[i].count = 1;}qsort(tel,n,sizeof(tel[0]),cmp);int leap;leap = 1;for(i = 0;i < n-1;i++){int count = 1;if(strcmp(tel[i].num,tel[i+1].num)==0 && i< n){while(strcmp(tel[i].num,tel[i+1].num)==0&&i<n) count++,i++;printf("%s %d\n",tel[i].num,count);leap = 0;}}if(leap)puts("No duplicates.");if(t)puts("");}return 0;
}
轉載于:https://www.cnblogs.com/0803yijia/archive/2012/07/24/2606792.html
總結
以上是生活随笔為你收集整理的uva 755487--3279的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Delphi实现类似Android锁屏的
- 下一篇: hdu2133: What day is