自然语言 伪代码
发布网友
发布时间:2022-11-21 09:21
我来回答
共1个回答
热心网友
时间:2024-02-01 14:33
C/C++的伪代码如下:
for(int i = 0; i < n - m; i++) {
j = 0;
while(j < m && P[j] == T[i + j]) {
j++;
}
if(j == m) {
return i;
}
}
return -1;
其中,你原来那个代码里面倒数第二样的if i = m return i的判断是错的,应该是判断j=m。 因为如果在T里面匹配上P的话,返回的是首次匹配的首字母的下标对吧?这个下标i的取值范围满足 0<=i<m对吧?因为m是非负整数,所以i的值就有可能取任何非负整数了。所以当在代码里面没有找到相关匹配的时候,返回-1是比较合适的。大家都知道-1绝对不可能是一个数组里面的某一位的下标的,对吧?当然在很多其它函数的实现上,也有返回其它值作为匹配失败的标志的,只是-1用的比较多一些而已。