这道题也是比较灵活的,比赛中没做出来,我一直用直白的模拟n^2的方法.队友用了字典树可以是超时了.后来回到寝室后队友提交了一下居然险过了,我问了剑哥,原来是很简单的方法.可我们当时就是没想到...看来以后一定要冷静.
#include<iostream>
#include <string>
#include <algorithm>
using namespace std;
string a[10001];
int n;
int main()
{
int t;
int i, j, k;
cin >> t;
while (t--)
{
cin >> n;
for (i=0; i<n; ++i)
{
cin >> a[i];
}
sort(a, a+n);
for (i=0; i<n-1; ++i)
{
if(a[i] == a[i+1].substr(0,a[i].size()))
break;
}
if(i >= n-1)
cout << "YES";
else
cout << "NO";
cout << endl;
}
return 0;
}
本文介绍了一种在编程比赛中遇到的字符串匹配问题及其解决方案。通过使用排序和子串比较的方法来判断一组字符串是否能构成前缀树,最终解决了比赛中的难题。

25万+

被折叠的 条评论
为什么被折叠?



