Hat’s Words(hdu 1247)(trie tree)
来源:互联网 发布:广电双向网络改造方案 编辑:程序博客网 时间:2024/06/09 17:46
Hat’s Words(hdu 1247)
一个 “hat’s word”是一个单词可以恰好由字典中其他两个单词联接得到。给出你字典中的单词,你的工作是找出字典中所有的hat’s word。
输入:
每行为一个单词,由小写英文字母组成。所有单词按照字典顺序排列,总数不超过50,000。只有一组测试数据。
输出:
输出为所有的hat’s word,且按照字典顺序输出。
输入样例:
a
ahat
hat
hatword
hziee
word
输出样例:
ahat
hatword
分析:
将每个单词都插入到Trie树里,并按顺序依次判断每个单词是不是hat’s word。判断一个单词是不是hat’s word时,用暴力将这个单词分成前后两部分,判断这两部分是否都出现在Trie树里。
代码:
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;char ch[50050][100];struct node{ struct node * next[26]; bool value; node() { for(int i = 0; i < 26; i++) next[i] = NULL; value = false; }}* root;void insert(char s[]){ int k = 0; node *p = root; while(s[k] != '\0') { if( ! p->next[s[k]-'a']) p->next[s[k]-'a'] = new node(); p = p->next[s[k]-'a']; k++; } p->value = true;}bool find(char s[]){ int k = 0; node *p = root; while(s[k] != '\0' && p->next[s[k]-'a']) { p = p->next[s[k]-'a']; k++; } if(s[k] == '\0' && p->value) return p->value; return false;}int main(){ int i = 0, k; root = new node(); while(scanf("%s", ch[i]) != EOF) { insert(ch[i]); i++; } for(k = 0; k < i; k++) { int j; for(j = 1;j < strlen(ch[k]) - 1; j++) { char s1[100], s2[100]; for(int jj = 0; jj < j; jj++) s1[jj] = ch[k][jj]; s1[j] = '\0'; strcpy(s2, ch[k] + j); if(find(s1) && find(s2)) { cout << ch[k] << "\n"; break; } } } return 0;}
0 0
- Hat’s Words(hdu 1247)(trie tree)
- HDU 1247 Hat's words(Trie)
- hdu 1247 Hat’s Words(Trie)
- HDU 1247 Hat’s Words (Trie)
- HDU 1247 Hat’s Words && Trie(字典树)
- HDU ACM 1247-Hat’s Words-字典树(Trie)
- hdu 1247 Hat’s Words(Trie树入门)
- hdu 1247 Hat’s Words Trie树(+测试数据)
- HDU 1247-Hat’s Words(trie树)
- HDU-1247 Hat’s Words (Trie 字典树)
- HDOJ-1247Hat’s Words(Trie)
- hdu 1247 Hat’s Words Trie树
- HDU 1247 Hat’s Words Trie题解
- hdu 1247 Hat’s Words(dfs+trie)
- HDU -- 1247 Hat’s Words (Trie 树)
- hdu 1247 Hat’s Words trie
- HDU 1247 Hat’s Words // Trie, 枚举
- [hdu 1247]Hat’s Words [Trie 图]
- 以太坊开发--阿里云ECS(centOS 6.8)安装Ethereum TestRPC
- PAT 1070. 结绳(25)-乙级
- Ajax轮询更改session后前台页面session更新问题
- LinkedBlockingQueue的put,add跟offer的区别
- thinkphp 事物回滚
- Hat’s Words(hdu 1247)(trie tree)
- 62.Unique Paths
- Html练习代码暂存
- 反射机制(一)
- 关于ImageLoader图片缓存
- #1473 : 小Ho的强迫症
- android中的IPC机制
- [Error 13] Permission denied
- JavaScript中的事件