Algorithm学习笔记 --- 487-3279
来源:互联网 发布:前端如何请求后台数据 编辑:程序博客网 时间:2024/06/05 02:12
首先声明,此代码没有通过poj,只是供大家研究分享,希望也能帮我找出缺点。
直接上代码,我的主要思想是用哈希映射,然后转换每个字符,考虑分为小写,大写,数字
代码如下:
#include <iostream>
#include<algorithm>
#include<iterator>
#define N 100010
using namespace std;
int hash[26]={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};
int a[N];
int main()
{
int n,sum=0,cnt=0;
string tmp;
cin >> n ;
while(n--)
{
cin >> tmp;
int t = 0 ;
for(unsigned i=0;i<tmp.size();++i)
if(tmp[i]>='A'&&tmp[i]<='Z')
t = t*10+hash[tmp[i]-65];
else if(tmp[i]>='0'&&tmp[i]<='9')
t = t*10+tmp[i]-48;
a[cnt++] = t ;
}
sort(a,a+cnt);
bool flag = true;
for(int i=0,j;i<cnt;)
{
int t = 1 ;
for(j=i+1;j < cnt ;++j)
if(a[i]==a[j])
++t;
else
break;
if(t>1)
{
cout << a[i]/10000 << "-" << a[i]%10000 << " " << t << endl;
flag = false;
}
i = j ;
}
if(flag)
cout << "No duplicates." <<endl;
return 0;
}
- Algorithm学习笔记 --- 487-3279
- Algorithm学习笔记 --- 抽签
- Algorithm学习笔记 --- Hangover
- Algorithm学习笔记 --- DNAsorting
- Algorithm学习笔记 --- 滑雪
- Algorithm学习笔记 --- 汉诺塔
- Algorithm学习笔记 --- Billboard
- Algorithm学习笔记 --- 级数求和
- Algorithm学习笔记 --- 生理周期
- Algorithm学习笔记 --- Flip Game
- Algorithm学习笔记 --- Counterfeit Dollar
- Algorithm学习笔记 --- Bone Collector
- Algorithm学习笔记 --- 单调队列
- Algorithm学习笔记 --- 1025 选菜
- Algorithm学习笔记 --- 合并果子
- Algorithm学习笔记 --- 堆排序
- Algorithm学习笔记 --- Black Box
- Algorithm学习笔记 --- 线段树
- 认证智能网关wifi 接口配置,VTache 和微信公众平台接口配置
- android inflater 用法
- 棋牌也可以手机PC互联啦
- Windows 下java JNI方法的实现
- poj 3624 0-1背包类问题 动态规划
- Algorithm学习笔记 --- 487-3279
- Spring MVC学习笔记(3)
- 编译器错误消息: CS0201: 只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句
- 2014日内瓦车展:宝马新款X3正式发布
- MySQL中表结构复制:create table like 与 create table as
- 巧用case when做SQL优化
- js prototype学习
- Java Socket编程
- 秒杀多线程第八篇 经典线程同步 信号量Semaphore