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     }

 

转载于:https://www.cnblogs.com/guyufei/p/3439059.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值