hdu1251 字典树or map

时间:2023-02-11 15:53:25

一道字典树的题,不过看起来用map更为简单

传送门

题意: 给出一堆字符串构成一个字典,求字典里以某字符串为前缀的字符串有几个

思路: 输入字符串时把字符串的前缀全部存进map并标记次数 查询时直接输出就可以了

AC代码:

 #include "stdio.h"
#include "map"
#include "string"
#include "string.h"
#include "iostream" using namespace std; int main()
{
map<string,int>M;
char ss[],s[];
int k;
while(gets(ss))
{
int l = strlen(ss);
if(l==) break;
s[] = '\0',k=;
for(int j=; j<l; j++)
{
s[k++]=ss[j];
s[k] = '\0';
M[s]++;
}
}
while(gets(s))
cout<<M[s]<<endl;
return ;
}