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 }