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)的更多相关文章

  1. GO语言总结(4)——映射(Map)

    上一篇博客介绍了Go语言的数组和切片——GO语言总结(3)——数组和切片,本篇博客介绍Go语言的映射(Map) 映射是一种内置的数据结构,用来保存键值对的无序集合. (1)映射的创建 make ( m ...

  2. 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; 要求完善设计,使得 ...

  3. Java-map-第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。 附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录

    第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...

  4. 第一题 (Map)利用Map,完成下面的功能:

    从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯.  附:世界杯冠军以及对应的夺冠年份,请参考本章附录. 附录  1.历届世界杯冠 ...

  5. 【机器学习基本理论】详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解

    [机器学习基本理论]详解最大似然估计(MLE).最大后验概率估计(MAP),以及贝叶斯公式的理解 https://mp.csdn.net/postedit/81664644 最大似然估计(Maximu ...

  6. 【机器学习基本理论】详解最大后验概率估计(MAP)的理解

    [机器学习基本理论]详解最大后验概率估计(MAP)的理解 https://blog.csdn.net/weixin_42137700/article/details/81628065 最大似然估计(M ...

  7. GoLang基础数据类型--->字典(map)详解

    GoLang基础数据类型--->字典(map)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   可能大家刚刚接触Golang的小伙伴都会跟我一样,这个map是干嘛的,是 ...

  8. 列表生成式+过滤器(filter)+映射(map)+lambda总结

    这些都是python的特色,不仅强大,而且好用,配合起来使用更是无敌. 零.lambda lambda用于产生一个匿名表达式,组成部分为:lambda + ‘函数表达式’ ‘函数表达式’由一个冒号加上 ...

  9. 最大似然估计(MLE)与最大后验概率(MAP)

    何为:最大似然估计(MLE): 最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”.可以通过采样,获取部分数据,然后通过最大似然估计来获取已知模型的参数. 最大似然估计 ...

  10. 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射

    从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...

随机推荐

  1. PHP中的变量

    PHP中的变量 程序是由代码与数据两部分组成,数据存储在变量,变量的本质是内存中的一个存储空间.变量对应的空间有一个名子,叫变量名,变量名用于对数据进行读写. 变量的定义 在php变量名之前必须使用' ...

  2. 关键字 static

    A. 面向过程: 1. 静态全局变量:在全局变量前,加上关键词static,该变量就被定义成为一个静态全局变量. 1.1. 特点: |该变量在全局数据区分配内存: |未经初始化的静态全局变量会被程序自 ...

  3. linux之Gcc使用

    本篇文章摘自 http://blog.csdn.net/ljzcom/article/details/7213101 对于Gcc自带的很多命令行,只有具体编程里面用到了或者看到别人真真用到的,用的目的 ...

  4. 3月3日[Go_deep]Populating Next Right Pointers in Each Node

    原题:Populating Next Right Pointers in Each Node 简单的链表二叉树增加Next节点信息,没什么坑.不过还是WA了两次,还是有点菜,继续做,另外leetcod ...

  5. JVM系列三:JVM参数设置、分析(转载)

    不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java ...

  6. 锋利的jquery-validation

    jquery插件 jquery插件项目托管于gitHub,项目地址https://github.com/jquery/plugins.jquery.com jquery插件的使用 表单验证插件 现在网 ...

  7. $.ligerDialog 操作

    //关闭 $.ligerDialog.open 打开的弹窗 frameElement.dialog.close(); //关闭父窗口 parent.$.ligerDialog.close(); //关 ...

  8. xshell连接linux服务器切换至oracle的sqlplus控制台时,无法使用回车键的解决方案!

    当使用xshell连接linux服务器后,切换至sqlplus控制台,当使用回车键时,出现^H的符号,貌似回车键不能用!解决方案: 1)$ stty erase ^H : 与退格键相关的设置是eras ...

  9. ubuntu 安装dell无线网卡2

    以下转自:http://blog.sina.com.cn/s/blog_73b6331101016haq.html ubuntu 12.04 bcm43xx无线网卡安装记录 (2012-07-01 0 ...

  10. AJAX 原理(转摘)

    在写这篇文章之前,曾经写过一篇关于AJAX技术的随笔,不过涉及到的方面很窄,对AJAX技术的背景.原理.优缺点等各个方面都很少涉及null.这次写这篇文章的背景是因为公司需要对内部程序员做一个培训.项 ...