strStr算法(無KMP) 略微優化的暴力解法

class Solution {
public:
   char* strStr(const char *str, const char *target)
   {
    if (!*target) return (char*)str;
    char *p1 = (char*)str, *p2 = (char*)target;
    char *p1Adv = (char*)str;
    while (*p2)
    {
        p1Adv++;
        p2++;
    }
    p1Adv--;//當它指向最後一個字符的時候,長度剛剛爲target長度
    while (*p1Adv) 
    {
        char *p1Begin = p1;
        p2 = (char*)target;
        while (*p1 && *p2 && *p1 == *p2) {
            p1++;
            p2++;
        }
        if (!*p2)
            return p1Begin;
        p1 = p1Begin + 1;
        p1Adv++;
    }
    return NULL;
    }
};

AC通過。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章