内部网站建设教程软文写作范例大全
这个是最简单的数据结构:因为只需要记住两句话就能完美的写出简洁优雅的代码
1. 每次都是从根节点开始看(或者说从第零次插入的东西开始遍历,son[][]里面存的是第几次插入)
2每次遍历都是插入和查询的字符串
#include<iostream>
using namespace std;
const int N = 1e5 + 10;
int son[N][26];
int idx;
int cnt[N];
char str[N];
void insert(char ch[]){int p = 0;for(int i = 0;ch[i];i ++){int u = ch[i] - 'a';if(!son[p][u])son[p][u] = ++ idx;p = son[p][u];}cnt[p] ++;
}int query(char ch[]){int p = 0;for(int i = 0;ch[i];i ++){int u = ch[i] - 'a';if(!son[p][u])return 0;p = son[p][u];} return cnt[p];
}
int main(){int n;cin >> n;while(n --){char ch[2];scanf("%s%s",ch,str);if( * ch == 'I') insert(str);else cout << query(str) << endl;}
}