给定一列电话号码,根据没有号码是其他号码的前缀,看看它是否符合要求。让我们
来看看下面这列电话号码:
- 紧急呼叫 911
- 艾利丝 97625999
- 鲍博 91125426
在这个案例里,就不可能打电话给鲍博,因为当你拨了鲍博电话前三位数字的时候,
电话服务中心将拨通紧急电话。所以,这个电话列表不符合要求。
2.输入描述
输入数据的第一行给出了一个整数,1≤t≤40,表示整个测试案例的个数。每个测试
案例的开头一行是
n
,表示电话号码的个数,
1≤
n
≤
10000。接下去的
n
行中,每行都是
一个不相同的电话号码。每个电话号码都是一个至多
10个数字的系列。
3.输出描述
对于每个测试案例,如果它是符合要求的,那么输入“YES”,否则,输出“NO”。
4.输入样例
2
3
911
97625999
91125426
5
113
12340
123440
12345
98346
5.输出样例
NO
YES
#include "stdafx.h"
#include<iostream>
#include<fstream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream fin("D:\\visual studio 2013 code\\test.txt");
int num;
string str;
char ch[80];
vector<string>str_v;
fin >> num;
cout << num << endl;
while (fin >> num)
{
//cout << num << endl;
scanf_s("%s", &ch);
str = ch;
str_v.clear();
for (int i = 0; i < num; i++)
{
fin >> str;
//cout << str << endl;
str_v.push_back(str);
}
sort(str_v.begin(),str_v.end());
for (int j = 0; j < str_v.size(); j++)
{
if (str_v[j + 1].find(str_v[j]) == 0)
{
//cout << "no" << endl;
printf_s("NO\n");
goto RL;
}
}
printf_s("YES\n");
//cout << "yes" << endl;
RL:
continue;
}
return 0;
}