poj 2608 Soundex
来源:互联网 发布:mac如何把照片拷到u盘 编辑:程序博客网 时间:2024/05/17 16:01
Soundex
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 9423 Accepted: 4683
Description
Soundex coding groups together words that appear to sound alike based on their spelling. For example, "can" and "khawn", "con" and "gone" would be equivalent under Soundex coding.
Soundex coding involves translating each word into a series of digits in which each digit represents a letter:
The letters A, E, I, O, U, H, W, and Y are not represented in Soundex coding, and repeated letters with the same code digit are represented by a single instance of that digit. Words with the same Soundex coding are considered equivalent.
Soundex coding involves translating each word into a series of digits in which each digit represents a letter:
1 represents B, F, P, or V 2 represents C, G, J, K, Q, S, X, or Z 3 represents D or T 4 represents L 5 represents M or N 6 represents R
The letters A, E, I, O, U, H, W, and Y are not represented in Soundex coding, and repeated letters with the same code digit are represented by a single instance of that digit. Words with the same Soundex coding are considered equivalent.
Input
Each line of input contains a single word, all upper case, less than 20 letters long.
Output
For each line of input, produce a line of output giving the Soundex code.
Sample Input
KHAWNPFISTERBOBBY
Sample Output
25123611
Source
Waterloo local 1999.09.25
法1:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>using namespace std;#define maxn 30#define inf 0x7ffffffchar arr[maxn];int n;map<char,int> m;int main(){ m['A'] = 0; m['E'] = 0; m['I'] = 0; m['O'] = 0; m['U'] = 0; m['H'] = 0; m['W'] = 0; m['Y'] = 0; m['B'] = 1; m['F'] = 1; m['P'] = 1; m['V'] = 1; m['C'] = 2; m['G'] = 2; m['J'] = 2; m['K'] = 2; m['Q'] = 2; m['S'] = 2; m['X'] = 2; m['Z'] = 2; m['D'] = 3; m['T'] = 3; m['L'] = 4; m['M'] = 5; m['N'] = 5; m['R'] = 6; while(gets(arr)){ for(int i = 0; arr[i];i++){ if(m[arr[i]] != 0 && m[arr[i]] != m[arr[i-1]]){ printf("%d",m[arr[i]]); } } printf("\n"); } return 0;}
法2:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include <queue>using namespace std;#define maxn 30#define inf 0x7ffffffint arr[maxn];char brr[maxn];int n;int main(){ memset(arr,0,sizeof(arr)); arr['B'- 'A'] = 1; arr['F'- 'A'] = 1; arr['P'- 'A'] = 1; arr['V'- 'A'] = 1; arr['C'- 'A'] = 2; arr['G'- 'A'] = 2; arr['J'- 'A'] = 2; arr['K'- 'A'] = 2; arr['Q'- 'A'] = 2; arr['S'- 'A'] = 2; arr['X'- 'A'] = 2; arr['Z'- 'A'] = 2; arr['D'- 'A'] = 3; arr['T'- 'A'] = 3; arr['L'- 'A'] = 4; arr['M'- 'A'] = 5; arr['N'- 'A'] = 5; arr['R'- 'A'] = 6; while(gets(brr)){ for(int i = 0; brr[i];i++){ if(arr[brr[i]-'A'] != 0 && arr[brr[i]-'A'] != arr[brr[i-1]-'A']){ printf("%d",arr[brr[i]-'A']); } } printf("\n"); } return 0;}
0 0
- poj 2608 Soundex
- poj 2608 Soundex
- POJ 2608 Soundex
- poj 2608 Soundex
- POJ 2608 Soundex G++
- POJ 2608 Soundex(水~)
- POJ 2608 Soundex 基础题题解
- Soundex pku 2608
- Soundex
- Soundex
- Soundex
- POJ 2608 Soundex(我的水题之路——字符值)
- SoundEx算法
- C++ Soundex
- ZOJ1858 Soundex
- SOUNDEX(c1)
- soundex算法
- SOUNDEX函数介绍-007
- Windows程序设计第五版 读书体会
- resteasy-spring + springmvc + extdirectspring配置
- Makefile.am、Makefile.in和Makefile的关系
- 1007_素数对猜想 (20)
- Embedded Linux Conference schedule announced, several talks from Free Electrons
- poj 2608 Soundex
- 工作日志
- Android TextView(EditView)文字底部或者中间 加横线
- 获取JSON对象的属性值
- UVA Foreign Exchange(排序)
- gdb如何调试没有符号表(未加-g选项的编译)的程序
- poj 2612 Mine Sweeper
- 从手机丢失看数据安全
- Dungeon Game