POJ1002487-3279(map)
http://poj.org/problem?id=1002
题意:是说很多公司用了容易记住的电话号码,例如有英文字母的或者是用了很多连字符或没有连字符的。每个电话号码都有标准模式,而为了统计有没有重复的电话号码,就要统计有多少的电话号码是重复的,只要是有重复的就输出他的标准模式,如果所有的字符串都没有重复的,就输出No duplicates.
思路:这个题就用了普通的枚举,用的是cin输入的,结果是超时了,后来改成scanf就A了。这个题还可以用map去做,以及在排序的时候转换成整型会省更多的时间,后两种方法,第一种方法用时1454ms,第三种方法用时574ms,至于map我还没写,夜实在是深了,我先睡了,明天去做一下 。
普通方法
#include<iostream>
#include<cstring>
#include<string>
#include<cstdlib>
#include<cstdio>
#include<algorithm> using namespace std ; char a[] = "";
char ch[] ,sh[][];
int n ,j; int cmp(const void *b,const void *c)
{
return strcmp((char *)b,(char *)c) ;
}
void cuizhehundan()
{
int len = strlen(ch) ;
int flag = ;
for(int i = ; i < len ; i++)
{
if(ch[i] >= ''&&ch[i] <= '')
sh[j][flag++] = ch[i] ;
if(ch[i] == '-'||ch[i] == 'Q'||ch[i] == 'Z')
continue ;
if(ch[i] >= 'A'&&ch[i] < 'Z')
sh[j][flag++] = a[ch[i]-'A'];
}
sh[j][flag] = '\0' ;
//cout<<sh[j]<<endl;
} int main()
{
int n ;
cin>>n ;
for(j = ; j < n ; j++)
{
scanf("%s",ch) ;
cuizhehundan();
}
qsort(sh,n,sizeof(sh[]),cmp) ;
int mark = ;
for(int i = ; i < n- ; i++)
{
int num = ;
// int x = i ;
while(i < n- &&strcmp(sh[i],sh[i+]) == )
{
num++ ;
i++ ;
}
if(num > )
{
for(int h = ; h < ; h++)
printf("%c",sh[i][h]);
cout<<'-';
for(int h = ; h < ; h++)
printf("%c",sh[i][h]);
// cout<<" ";
printf(" %d\n",num) ;
//cout<<num<<endl;
mark = ;
}
num = ;
}
if(!mark)
printf("No duplicates.\n");
return ;
}
转化整型
#include<iostream>
#include<cstring>
#include<string>
#include<cstdlib>
#include<cstdio>
#include<algorithm> using namespace std ; char a[] = "";
char ch[] ;
char sh[];
int n ,j; void cuizhehundan()
{
int len = strlen(ch) ;
int flag = ;
for(int i = ; i < len ; i++)
{
if(ch[i] >= ''&&ch[i] <= '')
sh[flag++] = ch[i] ;
if(ch[i] == '-'||ch[i] == 'Q'||ch[i] == 'Z')
continue ;
if(ch[i] >= 'A'&&ch[i] < 'Z')
sh[flag++] = a[ch[i]-'A'];
}
sh[flag] = '\0' ;
// for(int i = 0 ; i < len ; i++)
// cout<<sh[i];
// cout<<endl;
} int main()
{
int n ;
cin>>n ;
int shh[] ;
for(j = ; j < n ; j++)
{
scanf("%s",ch) ;
cuizhehundan();
shh[j] = atoi(sh) ;
}
sort(shh,shh+n) ;
//qsort(sh,n,sizeof(sh[0]),cmp) ;
int mark = ;
for(int i = ; i < n- ; i++)
{
int num = ;
// int x = i ;
while(i < n- &&shh[i]==shh[i+])
{
num++ ;
i++ ;
}
if(num > )
{
printf("%03d-%04d %d\n",shh[i]/,shh[i]%,num) ;
mark = ;
}
num = ;
}
if(!mark)
printf("No duplicates.\n");
return ;
}
说好的map做法,昨晚因为不舒服很早就睡了
#include<cstdio>
#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
#include<string>
#define maxn 1000
using namespace std;
char s1[maxn],s2[maxn];
char s3[]="2223334445556667Q77888999Z";
map<string, int>q;
void change(char s[])
{
int k=strlen(s);
int j=;
for(int i=; i<k; i++)
{
if(s[i]!='Q'&&s[i]!='Z'&&s[i]!='-')
{
char c=s[i];
if(s[i]>='A'&&s[i]<'Z')
{
c=s3[c-'A'];
}
if(j==)
s2[j++]='-';
s2[j++]=c;
}
}
s2[j]='\0';
//printf("%s\n",s2);
if(q.find(s2)==q.end())
q[s2]=;
else
q[s2]++;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s",s1);
change(s1);
}
map<string,int>::iterator it=q.begin();
bool flag=false;
while(it!=q.end())
{
if(it->second>)
{
flag=true;
cout<<it->first<<" "<<it->second<<endl;
}
it++;
}
if(!flag) printf("No duplicates.\n");
return ;
}
POJ1002487-3279(map)的更多相关文章
- GO语言总结(4)——映射(Map)
上一篇博客介绍了Go语言的数组和切片——GO语言总结(3)——数组和切片,本篇博客介绍Go语言的映射(Map) 映射是一种内置的数据结构,用来保存键值对的无序集合. (1)映射的创建 make ( m ...
- Java-集合=第五题 (Map)设计Account 对象如下: private long id; private double balance; private String password; 要求完善设计,使得该Account 对象能够自动分配id。 给定一个List 如下: List list = new ArrayList(); list.add(new A
第五题 (Map)设计Account 对象如下: private long id; private double balance; private String password; 要求完善设计,使得 ...
- Java-map-第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。 附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录
第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...
- 第一题 (Map)利用Map,完成下面的功能:
从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年份,请参考本章附录. 附录 1.历届世界杯冠 ...
- 【机器学习基本理论】详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解
[机器学习基本理论]详解最大似然估计(MLE).最大后验概率估计(MAP),以及贝叶斯公式的理解 https://mp.csdn.net/postedit/81664644 最大似然估计(Maximu ...
- 【机器学习基本理论】详解最大后验概率估计(MAP)的理解
[机器学习基本理论]详解最大后验概率估计(MAP)的理解 https://blog.csdn.net/weixin_42137700/article/details/81628065 最大似然估计(M ...
- GoLang基础数据类型--->字典(map)详解
GoLang基础数据类型--->字典(map)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 可能大家刚刚接触Golang的小伙伴都会跟我一样,这个map是干嘛的,是 ...
- 列表生成式+过滤器(filter)+映射(map)+lambda总结
这些都是python的特色,不仅强大,而且好用,配合起来使用更是无敌. 零.lambda lambda用于产生一个匿名表达式,组成部分为:lambda + ‘函数表达式’ ‘函数表达式’由一个冒号加上 ...
- 最大似然估计(MLE)与最大后验概率(MAP)
何为:最大似然估计(MLE): 最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”.可以通过采样,获取部分数据,然后通过最大似然估计来获取已知模型的参数. 最大似然估计 ...
- 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射
从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...
随机推荐
- 如何找出MySQL数据库中的低效SQL语句
面对业务的迅猛发展,DBA的一项重要工作就是及时发现数据库中的低效SQL语句,有的可以立刻着手解决(比如缺少合适的索引),有的需要尽快反馈给开发人员进行修改. MySQL数据库有几个配置选项可以帮助我 ...
- 承接VR/AR内容应用定制需求
业务范围: 1 承接VR/AR内容应用定制需求: 教育培训.建筑建设.旅游体验.课件教学系统.交通车辆仿真,模拟驾驶系统.游戏等.2 各类最新VR设备,例如GearVR.HTC vive.Oculus ...
- Java中浮点数的基础知识
偶然查看Math.round的JDK public static int round(float a) { if (a != 0x1.fffffep-2f) // greatest float val ...
- 清理c盘垃圾(将一下代码复制到记事本然后把后缀名改为xxx.bat,然后双击,就ok了!!)
@echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._m ...
- Linux--fedora21 PC机安装以及拨号上网和无限上网
最近回家,学习许久未用的linux,之前也是在培训的时候用的是 ubuntu ,这次回家查了下 fedora 最适合开发人员使用,所以就装了个试试.刚开始只能拨号上网,经过三天时间的各种搜索查找终于解 ...
- DTCMS自定义标签:获取所有栏目以及不显示指定栏目
DTcms.Web.UI\Label\category.cs中 添加下面代码 /// <summary> /// 返回所有类别 /// </summary> /// <r ...
- Winform ComboBox控件高亮显示
//重绘下拉表单窗口,需要在窗口设计代码中加入下面这一句 this.cmdChannelName.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawF ...
- angular的ng-class
项目内想到要替换class时,第一反应是使用angular最为简单粗暴的class改变方式: 在angular中为我们提供了3种方案处理class: 1:scope变量绑定,如上例.(不 ...
- Node.js 【Stream之笔记】
从Node.js API文档中可知, 'A stream is an abstract interface implemented by various objects in Node. For ex ...
- CentOS平台下为Python添加MongoDB支持PyMongo
下载PyMongo [root@leezhen ~]# wget https://pypi.python.org/packages/source/p/pymongo/pymongo-2.6.3.tar ...