hdu-1247
2016-02-17 19:54
363 查看
思路:
字典树模板题
字典树模板题
#include <iostream> #include <cstring> #include <cstdio> #define MAX 500007 using namespace std; struct node { int e; struct node* next[26]; }; node* root; char str[MAX][50]; void Insert(char* s) { node* ptr = root; for(;*s != '\0';s++) { int n = *s-'a'; if(ptr->next == NULL) ptr->next = new node(); ptr = ptr->next ; } ptr->e = 1; } bool find2(char* s) { node* ptr = root; for(;*s != '\0';s++) { int n = *s-'a'; ptr = ptr->next ; if(ptr != NULL) { if(ptr->e==1 && *(s+1)=='\0') return true; } else return false; } return false; } bool find1(char* s) { node* ptr = root; for(;*s != '\0';s++) { int n = *s-'a'; ptr = ptr->next ; if(ptr->e==1 && find2(s+1)) return true; } return false; } int main() { int i = 0; root = new node(); while(scanf("%s",str[i]) != EOF) { Insert(str[i]); i++; } for(int j = 0;j < i;j++) if(find1(str[j])) cout<<str[j]<<endl; return 0; }
相关文章推荐
- 日期格式转换问题MappingException: Could not determine type for: java.sql.String
- Android 捕获全局异常信息并进行相关处理
- MLlearning(2)——simHash算法
- LeetCode Find the Duplicate Number(一次通过)
- FFmpeg 3.0 版发布
- SSIS ->> Environment Variables
- 拥抱高效、拥抱 Bugtags 之来自用户的声音(四)
- BestCoder Round #72 (div.2)
- Android运营商名称显示之PLMN的读取(原)
- 简单SQLite的使用
- UIBezierPath个人学习总结
- Mysql“集群”和”主从“两者的区别
- 这些年正Android - 母亲
- 06笨小猴(1.9)
- 初识Unity
- JZOJ 1164.求和
- 多线程访问共享对象和数据的方式
- Android 的性能工具用法 I-渲染分析工具
- Java synchronized
- 没有 Linux 和开源软件的世界会变得怎么样