poj 3630

思路:用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");

你可能感兴趣的:(poj)