判斷一個字串是否是另一個字串的子串(Implement strStr() )
阿新 • • 發佈:2018-12-24
問題描述:
這是演算法中比較經典的問題,判斷一個字串是否是另一個字串的字串。
思路:
這個題目最經典的演算法應該是KMP演算法,KMP演算法是最優的線性演算法,複雜度已經達到了這個問題的下線。但是KMP演算法的過程比較複雜,在面試過程中很難在很短的時間內實現,所以在一般的面試中很少讓實現KMP演算法。
程式碼實現:
class Solution { public: int strStr(string haystack, string needle) { int i, j; for (i = j = 0; i < haystack.size() && j < needle.size();) { if (haystack[i] == needle[j]) { ++i; ++j; } else { i -= j - 1; j = 0; } } return j != needle.size() ? -1 : i - j; } };