poj 2001
貌似是最簡單的trie樹。。有點會了~
//============================================================================ // Name : 2001.cpp // Author : // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================#include <iostream> #include <cstdio> #include <cstring> using namespace std;char in[10000][50], out[10000][50]; int n;typedef struct node{int num;node * next[30];node(){num = 1;for(int i = 0;i < 30;i++){next[i] = NULL;}} }node;node *root;void insert(char *str){int len = strlen(str);node *now = root;int t;if(now == NULL){now = new node();now->num = 0;root = now;}for(int i = 0;i < len;i++){t = str[i]-'a';if(now->next[t] == NULL){now->next[t] = new node();}else{now->next[t]->num++;}now = now->next[t];} }void query(char *str, int m){node *now = root;int len = strlen(str);int t;for(int i = 0;i < len;i++){t = str[i]-'a';now = now->next[t];out[m][i] = str[i];if(now->num == 1){out[m][++i] = '\0';return ;}} }int main(){freopen("a.txt", "r", stdin);n = 0;while(scanf("%s", in[n])!=EOF){insert(in[n]);n++;}for(int i = 0;i < n;i++){query(in[i], i);printf("%s %s\n", in[i], out[i]);}return 0; }
轉(zhuǎn)載于:https://www.cnblogs.com/ACKOKO/articles/2126981.html
總結(jié)
- 上一篇: ASCII与汉字编码方法
- 下一篇: PHP编程最快明白 by www.kup