考虑在字符串中搜索另一个字符串的完全匹配。在部分匹配停止匹配的位置继续搜索是否安全,而不会得到错误的结果?
在代码中:
int indexOf(string target, string search){
for(int i=0; i + search.length < target.length; i++){
int f=0;
for(; f < search.length && search[f] == target[i + f]; f++); //empty loop
if(f == search.length) return i;
i += f; //is it safe to do this without to worry about a missing match?
}
}
要担心的是错过在部分匹配中开始的完全匹配(在上面的代码中i和i + f之间的某处)。但事实上,我无法想出任何一个案例来证明这种担忧。你能吗?