如何改进以下算法的缺陷,缺陷: 在串S长度低于串T时,仍然会继续匹配。
  • 板块学术版
  • 楼主WDK2614
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/11/2 19:33
  • 上次更新2023/10/27 04:29:41
查看原帖
如何改进以下算法的缺陷,缺陷: 在串S长度低于串T时,仍然会继续匹配。
710991
WDK2614楼主2022/11/2 19:33

int StrIndex(SString s,int pos, SString t) /求从主串s的下标pos起,串t第一次出现的位置,成功返回位置序号,不成功返回-1/ { int i, j, start; if (t.len==0)
return(0); /* 模式串为空串时,是任意串的匹配串 / start=pos; i=start; j=0; / 主串从pos开始,模式串从头(0)开始 / while (i<s.len && j<t.len) if (s.ch[i]==t.ch[j]) { i++; j++; } / 当前对应字符相等时推进 / else { start++; / 当前对应字符不等时回溯 / i=start; j=0; / 主串从start+1开始,模式串从头(0)开始*/ } if (j>=t.len) return(start); /* 匹配成功时,返回匹配起始位置 / else return(-1); / 匹配不成功时,返回-1 */ }

2022/11/2 19:33
加载中...