您的位置:首页 > 其它

HDU 6208 The Dominator of Strings

2018-02-02 08:29 399 查看
题目:

Here you have a set of strings. A dominator is a string of the set dominating all strings else. The string S is dominated by T if S is a substring of T.

Input:

The input contains several test cases and the first line provides the total number of cases.

For each test case, the first line contains an integer N indicating the size of the set.

Each of the following N lines describes a string of the set in lowercase. The total length of strings in each case has the limit of 100000.

The limit is 30MB for the input file.

Output:

For each test case, output a dominator if exist, or No if not.

Sample Input:

3

10

you

better

worse

richer

poorer

sickness

health

death

faithfulness

youbemyweddedwifebetterworsericherpoorersicknesshealthtilldeathdouspartandpledgeyoumyfaithfulness

5

abc

cde

abcde

abcde

bcde

3

aaaaa

aaaab

aaaac

Sample Output:

youbemyweddedwifebetterworsericherpoorersicknesshealthtilldeathdouspartandpledgeyoumyfaithfulness

abcde

No

题目链接

题目就是要求判断是否存在一个字符串使其它字符串都是它的子串。

首先这个字符串得是最长的,筛选一下然后用ans.find(*it) == ans.npos暴力遍历判断一下。

这道题有大量数据读入,使用cin、cout时最好加上

ios::sync_with_stdio(0);
cin.tie(0);


这个代码使用时scanf和cout不要一起用,printf和cin不要一起用

AC代码:

#include <stdio.h>
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <iomanip>
#include <cctype>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>

using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
typedef long long ll;

int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int T;
string ans;
cin >> T;
while (T--) {
vector<string> vec;
vector<string>::iterator it;
int n;
cin >> n;
int flag = 1;
ans.clear();
while (n--) {
string str;
cin >> str;
vec.push_back(str);
if (ans.length() < str.length()) {
ans = str;
}
}
for (it = vec.begin();it != vec.end();it++) {
if (ans.find(*it) == ans.npos) {
flag = 0;
break;
}
}
if (flag) {
cout << ans << endl;
}
else {
cout << "No" << endl;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: