思路:用qsort对字符串数组进行排序,由于父串与子串相邻,则只要比较相邻串是否符合就行了(通过比较相邻字符串长度,选择长度小的作为判断长度)
这次掌握了对字符串数组的快排;
不过还有人用trie树来做的,目前还不会。
用到的部分代码:
qsort(num,n,sizeof(num[0]),cmp);
for(i=0;i<n;i++)
len[i]=strlen(num[i]);
for(i=0;i<n-1;i++)
{
length=len[i]<len[i+1]?len[i]:len[i+1];
ok=0;
for(k=0;k<length;k++)
if(num[i][k]!=num[i+1][k])
{
ok=1;
break;
}
if(!ok)
break;
}
if(!ok)
printf("NO\n");