#include<bits/stdc++.h>
using namespace std;
struct NODE
{
string str;
int len;
} node[105];
bool cmp(NODE a,NODE b)
{
return a.len<b.len;
}
int main()
{
int n;
cin>>n;
getchar();
for(int i=0; i<n; ++i)
{
cin>>node[i].str;
node[i].len=node[i].str.length();
}
sort(node,node+n,cmp);
bool flag=false;
for(int i=1; i<n; ++i)
if(node[i].str.find(node[i-1].str)==string::npos)
{
flag=true;
break;
}
if(flag)cout<<"NO"<<endl;
else
{
cout<<"YES"<<endl;
for(int i=0; i<n; ++i)
cout<<node[i].str<<endl;
}
return 0;
}
SDUT 算法训练赛- (Substrings Sort- string find 使用)
最新推荐文章于 2024-06-26 17:00:33 发布
本文介绍了一个基于字符串长度进行排序的问题解决方案,并通过C++代码实现来验证字符串集合是否能根据长度递增排序且保持子串关系。此题目来自CodeForces平台,编号为988B。
752

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



