实现 strStr() 函数。html
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。若是不存在,则返回 -1。java
示例 1:面试
输入: haystack = "hello", needle = "ll" 输出: 2
示例 2:api
输入: haystack = "aaaaa", needle = "bba" 输出: -1
说明:oracle
当 needle
是空字符串时,咱们应当返回什么值呢?这是一个在面试中很好的问题。函数
对于本题而言,当 needle
是空字符串时咱们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。spa
int strStr(char * haystack, char * needle) { if(strlen(needle) == 0) return 0; for(int i=0;haystack[i] != '\0';i++) {//遍历字符串 if(needle[0] == haystack[i]) {//查找首字符匹配 for(int j=0;;j++) {//剩余字符匹配 if(needle[j] == '\0') return i; if(haystack[i+j] == '\0') return -1; if(needle[j] != haystack[i+j]) //剩余字符不匹配 break;//跳出当前匹配 } continue;//查找下一首字符 } } return -1;//首字符未匹配成功 }