Name That Number
来源:互联网 发布:蛀牙漱口水 知乎 编辑:程序博客网 时间:2024/05/29 04:36
题意:类似9宫格手机键盘,数字对应的字母如下:
2: A,B,C 5: J,K,L 8: T,U,V 3: D,E,F 6: M,N,O 9: W,X,Y 4: G,H,I 7: P,R,S给定一个数字串如4734,在字典中查询出可以用这串数字代表的所有单词
解题思路:
- 下面的算法没有技术含量,直接对读入的每个数字串进行分析,发现不符合随即处理下一个
- 因为字典是按字符串顺序排列好的,所以类似4734中的4代表的GHI字母,在处理A-F时可以简单跳过,而I-Z也可以直接不做处理
代码:
/*ID: zc.rene1LANG: CPROG: namenum*/#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX_LEN 13char alpha[8][4]={"ABC","DEF","GHI","JKL","MNO","PRS","TUV","WXY"};int before_area(char chr, char num){if(chr<alpha[num-'2'][0]) {return 1;}else{return 0;}}int after_area(char chr, char num){if(chr>alpha[num-'2'][2]) {return 1;}else{return 0;}}int main(void){int i, len, right, num_of_output=0;char str_num[MAX_LEN];char read_in[MAX_LEN];char result[MAX_LEN];FILE *fin=fopen("namenum.in", "r");FILE *dict=fopen("dict.txt", "r");FILE *fout=fopen("namenum.out", "w");fscanf(fin, "%s", str_num);while(fscanf(dict, "%s", read_in)>0){i=0;right=1;len=strlen(read_in);if(after_area( read_in[0], str_num[0])) break;if(len!=strlen(str_num)) continue;for(i=0; i<len; i++){if(before_area(read_in[i], str_num[i])||after_area( read_in[i], str_num[i])){right=0;break;}}if(right==1){num_of_output++;fprintf(fout, "%s\n", read_in);}}if(num_of_output==0){fprintf(fout, "NONE\n");}return 0;}
- USACO:Name That Number
- Name That Number(USACO)
- Name That Number
- Name That Number
- [USACO] Name That Number
- USACO Name That Number
- usaco Name That Number
- usaco Name That Number
- name that number
- [USACO]Name That Number
- Name That Number
- Name That Number
- USACO:Name That Number
- Name That Number
- USA Name That Number
- Name That Number USACO
- Name That Number
- USACO Name That Number
- iphone开发资源汇总
- 四数的最大值与最小值
- gem5 模拟exclusive cache
- Unity 中国区总经理符国新:3D引擎开发
- go语言函数
- Name That Number
- 用于嵌入式开发的NFS环境搭建
- 利用GDAL进行多项式几何校正校正新思路
- Pragmatic Thinking Learning笔记
- JavaScript 全选,反选,全不选
- Name Mangling
- Unicode也是一种字符编码方法,容纳65536个字符
- RIM发布Gameplay跨平台开源3D引擎
- camera与opengl es的融合显示(AR基础)