實現 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;//首字符未匹配成功 }