用於快速的查找一個字符串數組
static final int max=100005; //全部字符總數 static int son[][]=new int[max][26];//son數組存儲每一個節點的兒子;一維表示父節點下標,二維表示小寫字母 son[x][0~25] static int cnt[]=new int[max]; //cnt[i]存儲如下標i爲結點的字符串的數量; static int idx; //idx表示當前用到了那個下標,下標是0的點既是根節點又是空節點 static void insert(String s){ int p=0; for(int i=0;i<s.length();i++){ int u=s.charAt(i)-'a'; if(son[p][u]==0) son[p][u]=++idx; p=son[p][u]; } cnt[p]++; } static int query(String s){ int p=0; for(int i=0;i<s.length();i++){ int u=s.charAt(i)-'a'; if(son[p][u]==0) return 0; p=son[p][u]; } return cnt[p]; }