zoukankan      html  css  js  c++  java
  • Trie树

    https://hihocoder.com/problemset/problem/1014

    代码

    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    
    struct TrieTree
    {
    	vector<TrieTree*> subtrees;
    	int L;
    	char var;
    	TrieTree(int L_, char var_)
    	{
    		L = L_;
    		var = var_;
    	}
    };
    
    int main()
    {
    	int N;
    	TrieTree *Tree = new TrieTree(0, '+');
    	string str;
    	cin >> N;
    	
    	// 建Trie树
    	for (int i = 0; i < N; i++)
    	{
    		// 输入要插入的字符串
    		cin >> str;
    		TrieTree *p = Tree;
    		for (auto c : str)
    		{
    			if (p->subtrees.size() == 0)
    			{
    				TrieTree *tmpNode = new TrieTree(1, c);
    				p->subtrees.push_back(tmpNode);
    				p = tmpNode;
    			}
    			else
    			{
    				bool flag = false;
    				for (auto subtree : p->subtrees)
    				{
    					if (subtree->var == c)
    					{
    						subtree->L++;
    						p = subtree;
    						flag = true;
    						break;
    					}
    				}
    				if (flag == false)
    				{
    					TrieTree *tmpNode = new TrieTree(1, c);
    					p->subtrees.push_back(tmpNode);
    					p = tmpNode;
    				}
    			}
    		}
    	}
    	
    	cin >> N;
    	// 查询
    	for (int i = 0; i < N; i++)
    	{
    		cin >> str;
    		TrieTree *p = Tree;
    		bool zeroflag = false;
    		for (auto c : str)
    		{
    			if (p->subtrees.size() == 0)
    			{
    				zeroflag = true;
    				break;
    			}
    			else
    			{
    				bool flag = false;
    				for (auto subtree : p->subtrees)
    				{
    					if (subtree->var == c)
    					{
    						p = subtree;
    						flag = true;
    						break;
    					}
    				}
    				if (flag == false)
    				{
    					zeroflag = true;
    					break;
    				}
    			}
    		}
    		if (zeroflag == true)
    			printf("0
    ");
    		else
    			printf("%d
    ", p->L);
    	}
    	return 0;
    }
    
  • 相关阅读:
    Django Restframework 实践(二)
    mysql in 过滤 解决转义问题
    automapper
    autoface
    各种文件上传 转载
    REST Client
    MySql PartionBy
    mysql 变量名称不能与表字段一致
    mysql 存储过程分页 转载
    dapper.net 转载
  • 原文地址:https://www.cnblogs.com/shayue/p/Trie-shu.html
Copyright © 2011-2022 走看看