十八号牡丹:下面的算法中,“i=i-j+1"是怎么来的?
来源:百度文库 编辑:中科新闻网 时间:2024/10/01 08:46:41
int Index(SString S, SString T, int pos) {
// 返回子串T在主串S中第pos个字符之后的位置。
// 若不存在,则函数值为0。
// 其中,T非空,1≤pos≤StrLength(S)。
i = pos; j = 1;
while (i <= S[0] && j <= T[0]) {
if (S[i] == T[j]) { ++i; ++j; } // 继续比较后继字符
else { i = i-j+2; j = 1; } // 指针后退重新开始匹配
}
if (j > T[0]) return i-T[0];
else return 0;
} // Index
不好意思,是"i=i-j+2"
// 返回子串T在主串S中第pos个字符之后的位置。
// 若不存在,则函数值为0。
// 其中,T非空,1≤pos≤StrLength(S)。
i = pos; j = 1;
while (i <= S[0] && j <= T[0]) {
if (S[i] == T[j]) { ++i; ++j; } // 继续比较后继字符
else { i = i-j+2; j = 1; } // 指针后退重新开始匹配
}
if (j > T[0]) return i-T[0];
else return 0;
} // Index
不好意思,是"i=i-j+2"
先问个问题
i、j是int型,s[0]和t[0]是字符,两者虽然可以比较但在这里比较有什么意义吗?
指针后退是 以本次比较的首字符的位置后移一个字符为下次比较的首字符的位置,应该是程序中写的 i = i-j+2吧。
这个程序有问题,你还是再好好想想吧!
这么垃圾的程序都能编出来!!
下面的算法中,“i=i-j+1"是怎么来的?
xx[I][j]+=1的意思
在C语言中j=-i++
j=0 For i=1To10 Step3 j=j+i Next i j是多少?
急!int i=1,,j=1,k=3,则表达式!&&(i+j)&k|i+j的值是多少?
对initgraph()函数进行初始化是,如inigraph(&i,&j,""),i=CGA,j=CGACO,其中括号中3个量是什么意思?
求解∑上面是"10"右面是"i"下面是"i=1".
C语言:j=i+(++i)
for(i=0;i<n-1;i++){ m=i;for(j=i+1;j<n;j++);----}为什么for(j=i+1;j<n;j++)的运行次数是n(n-1)/2次呢?
循环for(i=0,j=5;++i!=--j;)printf("%d%d",i,j);将执行多少次?为什么?谢谢!!