如果有某个号码是另一个号码的一部分,则两个号码必定排序后相连。所以拍一下序,然后挨个相邻查找即可
// Problem#: 1426
// Submission#: 3179459
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main() {
int test, n;
bool find;
string str[10000];
cin >> test;
while (test--) {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> str[i];
}
sort(str, str + n);
find = false;
for (int i = 1; i < n; i++) {
if (str[i].find(str[i - 1]) != string::npos) {
find = true;
break;
}
}
if (find == true)
cout << "NO" << endl;
else
cout << "YES" << endl;
}
}