2018年1月27日 星期六

[28] Implement strStr()

嗯~這個題目~
可以用strstr()嗎? (被打)
但還是偷偷用了strncmp XDDDDDD
後來良心不安再寫了一個沒有用strncmp的版本
但看討論好像跟什麼KMP有關 (不是KMT國民黨XD)
好懶得動腦喔可以不要管它嗎~~(滾來滾去滾來滾去)

Implement strStr()
int strStr(char* haystack, char* needle) {
    if (haystack == NULL || needle == NULL)
        return -1;

    int length = strlen(haystack);
    int lengthIn = strlen(needle);

    if(length < lengthIn)
        return -1;
    else if (length == 0 && lengthIn ==0)
        return 0;
     
    int i;
    for(i=0;i<=length - lengthIn;i++)
    {
        printf("[%d][%s]\n",i,haystack+i);
#if 1      
        int j;
        for (j=0;j<lengthIn;j++)
        {
// printf("[%d][%d][%c][%c]\n",i,j,haystack[i+j],needle[j]);
            if(haystack[i+j]!=needle[j])
                break;
        }
        if (j==lengthIn)
            return i;
#else
        if (strncmp(haystack+i,needle,lengthIn)==0)
            return i;
#endif
    }
    return -1;
}

沒有留言:

張貼留言