!-- Loading 底层遮罩 -->

Trie 树

插入

void insert(const string& str)
{
	int u = 0;
	for (int i = 0; i < str.size(); i++)
	{
		int a = str[i] - 'a';
		if (!trie[u][a])
			trie[u][a] = ++idx;
		u = trie[u][a];
	}
	cnt[u]++;
}

查询

int query(const string& str)
{
	int u = 0;
	for (int i = 0; i < str.size(); i++)
	{
		int a = str[i] - 'a';
		if (!trie[u][a])
			return 0;
		u = trie[u][a];
	}
	return cnt[u];
}

 

posted @ 2023-01-01 21:20  Thinker-X  阅读(20)  评论(0)    收藏  举报