POJ2503 Babelfish
2014-08-12 09:42
288 查看
做些题,练手。
问题出自:http://poj.org/problem?id=2503,Babelfish是yahoo!的一款在线翻译软件,估计原始问题出自这里。
题目很简单,实现一个字典来记录key、value,然后根据输入在字典中查找相应的含义。搜索问题,使用qsort()排序和 bsearch()搜索是一个比较常用的组合。接下来就用这种方法实现。另外字典也可以使用trie树,也是常见思路。
参考:
http://poj.org/problem?id=2503 http://baike.baidu.com/view/653958.htm http://baike.baidu.com/view/982231.htm
问题出自:http://poj.org/problem?id=2503,Babelfish是yahoo!的一款在线翻译软件,估计原始问题出自这里。
题目很简单,实现一个字典来记录key、value,然后根据输入在字典中查找相应的含义。搜索问题,使用qsort()排序和 bsearch()搜索是一个比较常用的组合。接下来就用这种方法实现。另外字典也可以使用trie树,也是常见思路。
#include <stdio.h> #include <stdlib.h> #include <string.h> struct DictNode { char key[32]; char value[32]; }; int comp_value(const void* a,const void* b) { return strcmp((char *)a, ((DictNode*)b)->value); } int comp(const void* a,const void* b) { return strcmp(((DictNode*)a)->value , ((DictNode*)b)->value); } int main() { char line[32], query[32]; int i = 0; DictNode nodeArray[100000]; while(gets(line)) { if(!strcmp(line,"")) break; int k = strlen(line); int j = 0; for(j=0;j<k;j++) { if(line[j]==' ') { line[j]='\0'; break; } } strcpy(nodeArray[i].key, line); strcpy(nodeArray[i].value, line+j+1); i++; } //sort dict data qsort(nodeArray, i, sizeof(DictNode), comp); while(gets(query)) { //lookup dict DictNode* node = (DictNode*)bsearch(query, nodeArray, i, sizeof(DictNode), comp_value); if(node==NULL) { printf("eh\n"); } else { printf("%s\n", node->key); } } return 0; }
参考:
http://poj.org/problem?id=2503 http://baike.baidu.com/view/653958.htm http://baike.baidu.com/view/982231.htm
相关文章推荐
- POJ-2503 Babelfish
- poj——2503——Babelfish
- POJ 刷题系列:2503. Babelfish
- poj 2503 Babelfish
- poj 2503 Babelfish
- POJ 2503 Babelfish(人造字典map)
- POJ 2503 Babelfish
- POJ 2503:Babelfish(字典树入门)
- poj2503 Babelfish (hash)
- POJ 2503 Babelfish
- POJ 2503 Babelfish
- POJ 2503 Babelfish
- poj-2503-Babelfish-字典树orMAP or 字符串哈希
- POJ2503 Babelfish(二分)
- POJ训练计划2503_Babelfish(二分)
- POJ_2503_Babelfish_(Trie/map)
- poj 2503 Babelfish
- POJ - 2503 B - Babelfish
- Poj 2503 Babelfish(Map操作)
- POJ 2503——Babelfish