LintCode: strStr
C++
(1) null
(2) length is 0
(3) return value
(4) strlen
1 class Solution { 2 public: 3 /** 4 * Returns a index to the first occurrence of target in source, 5 * or -1 if target is not part of source. 6 * @param source string to be scanned. 7 * @param target string containing the sequence of characters to match. 8 */ 9 int strStr(const char *source, const char *target) { 10 // write your code here 11 if (source == NULL || target == NULL) return -1; 12 13 int i, j, len_s = strlen(source), len_t = strlen(target); 14 15 if (len_s == 0 && len_t == 0) return 0; 16 17 i = 0; 18 while (source[i] != '\0') { 19 if (i + len_t > len_s) return -1; 20 j = 0; 21 while (target[j] != '\0') { 22 if (source[i + j] == target[j]) { 23 j++; 24 } else { 25 break; 26 } 27 } 28 if (target[j] == '\0') return i; 29 i++; 30 } 31 return -1; 32 } 33 };
![字节跳动内推](https://img2020.cnblogs.com/blog/323808/202004/323808-20200415172728571-1992447742.jpg)
找我内推: 字节跳动各种岗位
作者:
ZH奶酪(张贺)
邮箱:
cheesezh@qq.com
出处:
http://www.cnblogs.com/CheeseZH/
*
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。