算法---查找子串第一次出现的位置索引(indexOf)

      给定一个字符串A,要求在A中查找一个子串B。如A=”ABCDF”,要你在A中查找子串B=“CD”。

思路为遍历主串,用主串的当前元素和子串中的元素进行比较,相符,继续逐个比较,直到最终比较个数等于子串长度,则可认为找到了子串在主串中第一次出现的位置索引。

      算法如下:

/// <summary> /// 给定一个字符串A,要求在A中查找一个子串B。 /// 如A=”ABCDF”,要你在A中查找子串B=“CD”。 /// </summary> /// <param name=”str”>主串</param> /// <param name=”strSub”>子串</param> /// <returns>索引位置</returns> int Test(string[] str, string[] strSub) { if (str == null || strSub == null) return -1; 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; }

算法清晰、简洁。

结束。

    原文作者:查找算法
    原文地址: https://blog.csdn.net/zxz414644665/article/details/6536396
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞