题意:给出几个字符窜,判断是否某个字符窜包含另一个字符窜为前缀,则输出NO(注意NO是大写),否则输出YES(注意是大写,大写)
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; struct Node { char nam[100]; int len; }node[10100]; bool cmp(Node p1,Node p2) { return strcmp(p1.nam,p2.nam)<0; } int main() { int T,n,t,i,j,flag=0; char str[100]; scanf("%d",&T); while(T--) { flag=0; scanf("%d",&n); for (i=0;i<n;i++) { scanf("%s",node[i].nam); node[i].len=strlen(node[i].nam); } sort(node,node+n,cmp); for (i=1;i<n;i++) { for (t=0;node[i].nam[t];t++) { if(node[i].nam[t]!=node[i-1].nam[t]) break; } if(t==node[i-1].len) break; } if(i!=n) printf("NO\n"); else printf("YES\n"); } return 0; }