一周前,我完成了作业,必须在C中编写一个函数. 该函数获取单个正整数数组,并且必须返回该数组中的下一个数字. 数组看起来像这样:{1,2,3,1,2,3,4,1,2,3,1,2,3,4,1,2,3,-1}; -1表示数组的结尾.
A week ago I got my homework, where I have to write a function in C. The function gets a single array of positive integers, and it has to return the next number in the array. The arrays look something like this: {1,2,3,1,2,3,4,1,2,3,1,2,3,4,1,2,3,-1}; -1 means the end of the array.
我知道该函数必须返回的数字为1,但是,如何编码模式查找算法?我还没有在互联网上找到任何解决方案,因为关于模式搜索的所有其他问题都与字符串有关,其中已经给出了必须找到的模式.
I know that the number which has to be returned by the function is 1, however, how can I code a pattern finding algorithm? I haven't found any solution on the internet, since every other question about pattern searching is with strings, where the pattern which has to be found is already given.
推荐答案如果模式的长度为1,则对于所有可能的k,您将具有a[k+1] == a[k].
if the pattern has a length of 1, you will have a[k+1] == a[k] for all possible k.
通常,对于正确的plen(图案长度)和所有可能的k,您将具有a[k+plen] == a[k].
more generally, you will have a[k+plen] == a[k] for the correct plen (pattern length) and all possible k.
因此确定以1开头的plen ...在您的情况下,您会得到7,因为a[7]==a[0],a[8]==a[1],... a[16]==a[9],所以只需返回a[17-7].
so determine plen starting with 1... in your case you get 7 because a[7]==a[0], a[8]==a[1], ... a[16]==a[9], so just return a[17-7].
更多推荐
如何在整数数组中找到模式?
发布评论