poj 1002之我见
来源:互联网 发布:福莱软件介绍 编辑:程序博客网 时间:2024/04/29 19:36
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
//出现Runtime Error可能原因是分配的局部的数组空间不够,之运行中出现此类错误
//使用每加入一个都计数的方式可能会导致Time Limit Exceeded
//最好使用一次排序并且一次遍历计数的方式
//q没有映射,暂记为1
char map[]={'2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','7','7','7','8','8','8','9','9','9','9'};
//struct N{
// int data;
// int times;
//};
int nums[100005];
int cmp(const void *n1,const void *n2){
return *(int *)n1 - *(int *)n2;
}
int main(){
int num;
scanf("%d",&num);
for(int i=0;i<num;i++){
int now=0;
char worknum[256];
scanf("%s",&worknum);
int index=0;//写入指针index4为扫描指针
for(int index4=0;index4<strlen(worknum);index4++){
if(worknum[index4]>='A'&&worknum[index4]<='Z'){
worknum[index]=map[worknum[index4]-'A'];
index++;
}
else if(worknum[index4]>='0'&&worknum[index4]<='9'){
worknum[index]=worknum[index4];
index++;
}
else
continue;
}
worknum[index]='\0';
//使用将字符创数字转化为int行的函数,一定要熟练。
now=atoi(worknum);
nums[i]=now;
//查找有没有now
//bool flag=false;
//for(int j=0;j<=index2;j++){
// if(nums[j].data==now){
// nums[j].times++;
// flag=true;
// }
//}
//if(!flag){
// index2++;
// nums[index2].data=now;
// nums[index2].times=1;
//}
}
qsort(nums,num,sizeof(int),cmp);
int dup=0;
int count=1;
for(int k=0;k<num;k++){
if(nums[k]==nums[k+1]){
count++;
}
else{
if(count!=1){
dup++;
int head=nums[k]/10000;
int tail=nums[k]%10000;
printf("%03d-%04d %d\n",head,tail,count);
count=1;
}
}
}
if(dup==0)
printf("No duplicates.\n");
return 0;
}
- poj 1002之我见
- 软件测试之我见
- 学校课程设计之我见
- 项目经理之我见
- Java性能之我见
- 地产泡沫之我见
- 项目经理之我见
- 软件设计之我见
- 移动开发之我见
- 国外电影之我见
- singleton之我见
- SiteMesh 之我见
- jsp template之我见
- jsp template之我见
- 游戏策划之我见
- java模式之我见
- "没有银弹"之我见
- dm分区之我见
- Sql2005 全文索引详解
- 避免’sudo echo x >’ 时’Permission denied’
- 面试总结
- linux exec的用法
- C++STL基础
- poj 1002之我见
- 网站推荐--UI设计必备
- linux 性能分析工具汇总
- 菜农与蔡勒和基姆拉尔森三个星期公式之揭秘与推想
- SNMP++在vs2008下的编译
- linux fork说明
- ImageView属性
- JW FLV PLAYER 在线FLV播放器中文使用说明
- Selenium 使用介绍