#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 使用)
最新推荐文章于 2022-11-25 13:12:43 发布