Implement strStr() [LeetCode]

Implement strStr().

Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.

Summary: be careful about the corner case, haystack = "", needle = ""

 1     char *strStr(char *haystack, char *needle) {

 2         if(haystack[0] == '\0' && needle[0] == '\0')

 3             return haystack;

 4             

 5         int hay_idx = 0;

 6         while(haystack[hay_idx] != '\0'){

 7             bool find = true;

 8             int tmp_idx = hay_idx;

 9             int needle_idx = 0;

10             while(needle[needle_idx] != '\0'){

11                 if(haystack[tmp_idx] == '\0')

12                     return NULL;

13                 if(haystack[tmp_idx] != needle[needle_idx]){

14                     find = false;

15                     break;

16                 }

17                 tmp_idx ++;

18                 needle_idx ++;

19             }

20             if(find)

21                 return haystack + hay_idx;

22             else

23                 hay_idx ++;

24             

25         }

26         return NULL;

27     }

 

你可能感兴趣的:(LeetCode)