当前位置: 首页>>代码示例>>C++>>正文


C++ trie::match方法代码示例

本文整理汇总了C++中trie::match方法的典型用法代码示例。如果您正苦于以下问题:C++ trie::match方法的具体用法?C++ trie::match怎么用?C++ trie::match使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在trie的用法示例。


在下文中一共展示了trie::match方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: generate

void generate(string s, int val)
{
	queue<string> q;
	int i, h, pai, filho;
	if(m.count(s) == 0)
	{
		m[s] = m.size() - 1;
		q.push(s);
	}
	pai = m[s];
	tam[pai] = val;
	while(!q.empty())
	{
		s = q.front();
		pai = m[s];
		q.pop();
		if(tam[pai] > resp) continue;
        query.clear();
        t.match(s, 0); 
        for(i=0;i<query.size();i++)
		{
			if(!sufix(s, query[i])) continue;
            if(m.count(sufstr) == 0)
            {
                m[sufstr] = m.size() - 1;
                filho = m.size() - 1;
                q.push(sufstr);
            }
            else filho = m[sufstr];
            tam[filho] = tam[pai] + sufdis;
            grafo[pai].push_back(filho);
            peso[pai].push_back(sufdis);
		}
	}
}
开发者ID:jccarvalhosa,项目名称:maratona,代码行数:35,代码来源:ambiguos.cpp

示例2: main

int main()
{
	int N, i, j, k;
	vector<string> init;
	vector<int> start;
    string str;
	char s[100];
	while(scanf("%d", &N) != EOF && N)
	{
		v.clear();
		init.clear();
		start.clear();
        t.children.clear();
		for(i=0;i<m.size();i++)
		{
			grafo[i].clear();
			peso[i].clear();
			tam[i] = INF;
		}
		m.clear();
		m[""] = 0;
		for(i=0;i<N;i++)
		{
			scanf("%s", s);
            t.insert(s, 0);
            v.push_back(s);
		}
		for(i=0;i<v.size();i++)
        {
            query.clear();
            t.match(v[i], 0);
            for(j=0;j<query.size();j++) if(query[j] != v[i])
            {
                if(!sufix(v[i], query[j])) continue;
                init.push_back(sufstr);
                start.push_back(max(v[i].size(), query[j].size()));
            }
		}
		resp = INF;
		for(i=0;i<init.size();i++) if(start[i] < resp) resp = min(resp, shortest_path(init[i], start[i]));
		if(resp == INF) printf("-1\n");
		else printf("%d\n", resp);
	}
	return 0;
}
开发者ID:jccarvalhosa,项目名称:maratona,代码行数:45,代码来源:ambiguos.cpp


注:本文中的trie::match方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。