[LeetCode]Implement strStr()

Implement strStr():

Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

执行两次遍历即可。算法复杂度在最坏的情况下不会超过O(mn)。

class Solution {
public:
    bool check(int t,string a,string b){
        if(t + b.size() > a.size()) return false;
        for(int i = 0; i < b.size(); i++){
            if(b[i] != a[i+t]) return false;
        }
        return true;
    }
    int strStr(string haystack, string needle) {
        int len1 = haystack.size(), len2 = needle.size();
        if(len1<len2) return -1;
        if(len2== 0) return 0;
        for(int i = 0; i < len1; i++){
            if(haystack[i] == needle[0]){
                if(check(i,haystack,needle)) return i;
            }
        }
        return -1;
    }
};
posted @ 2017-10-31 21:45  liangf27  阅读(117)  评论(0编辑  收藏  举报