编程之美3.1解法

书上解法一复杂度应该是O(N*N*M)的时间,解法二的复杂度是O(N*M)的时间和O(N)的空间。

感觉自己的这个实现更好一些,O(N*M)的时间:

bool FindSub(char *a, char *b)
{
	for(int i = 0; i<N; i++)
	{
		int j = 0;
		while(a[(i+j)%N]==b[j])
		{	
			if(j < M-1)
				j++;
			else
				break;
		}
		if (j == M-1) return 1;
	}
	return 0;
}

    原文作者:谷堆间的驴子
    原文地址: https://blog.csdn.net/woshishuizzz/article/details/8230644
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞