给定一个字符串A,要求在A中查找一个子串B。如A="ABCDF",要你在A中查找子串B=“CD”。
思路为遍历主串,用主串的当前元素和子串中的元素进行比较,相符,继续逐个比较,直到最终比较个数等于子串长度,则可认为找到了子串在主串中第一次出现的位置索引。
算法如下:
int lenStr = str.Length;
int lenSub = strSub.Length;
int len = lenStr - lenSub + 1;
if (lenStr < lenSub) return -1;
for (int i = 0; i < len; i++)
{
int j = 0;
for (; j < lenSub; j++)
{
if (str[i + j] != strSub[j]) break;
}
if (j == lenSub) return i + 1;
}
return -1;
}
算法清晰、简洁。
结束。