中小企业网站建设开题报告,discu论坛网站模板,百度推广开户免费,wordpress模板8维护一个字符串集合#xff0c;支持两种操作#xff1a;
I x 向集合中插入一个字符串 x#xff1b;Q x 询问一个字符串在集合中出现了多少次。
共有 N 个操作#xff0c;所有输入的字符串总长度不超过 105#xff0c;字符串仅包含小写英文字母。
输入格式
第一行包含整…维护一个字符串集合支持两种操作
I x 向集合中插入一个字符串 xQ x 询问一个字符串在集合中出现了多少次。
共有 N 个操作所有输入的字符串总长度不超过 105字符串仅包含小写英文字母。
输入格式
第一行包含整数 N表示操作数。
接下来 N 行每行包含一个操作指令指令为 I x 或 Q x 中的一种。
输出格式
对于每个询问指令 Q x都要输出一个整数作为结果表示 x 在集合中出现的次数。
每个结果占一行。
数据范围
1≤N≤2∗104
输入样例
5
I abc
Q abc
Q ab
I ab
Q ab输出样例
1
0
1
_____________________________________________________________________________
写作不易点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ____________________________________________________________________________ #include bits/stdc.h
using namespace std;
int son[1000005][26],cnt[1000005],idx;
char str[100005];
void node(char str[]){int p0;for(int i0;str[i];i){int ustr[i]-a;if(!son[p][u])son[p][u]idx;pson[p][u];}cnt[p];
}
int check(char str[]){int p0;for(int i0;str[i];i){int ustr[i]-a;if(!son[p][u])return 0;pson[p][u];}return cnt[p];
}
int main(){int n;cinn;while(n--){char op[2];scanf(%s%s,op,str);if(op[0]I)node(str);else coutcheck(str)endl;}return 0;
}