給定一個(gè) haystack 字符串和一個(gè) needle 字符串,在 haystack 字符串中找出 needle 字符串出現(xiàn)的第一個(gè)位置 (從0開始)。如果不存在奇颠,則返回 -1。
示例 1:
輸入: haystack = "hello", needle = "ll"
輸出: 2
示例 2:
輸入: haystack = "aaaaa", needle = "bba"
輸出: -1
說明:
當(dāng) needle 是空字符串時(shí)我們應(yīng)當(dāng)返回 0 。
C
int strStr(char * haystack, char * needle){
int i, j;
int len1 = strlen(haystack);
int len2 = strlen(needle);
for(i = 0; i <= len1 - len2; i++){
for(j = 0; j < len2; j++){
if(haystack[i + j] != needle[j]){
break;
}
}
if(j == len2) return i;
}
return -1;
}
/*
int i,j,len1,len2;
len1 = strlen(haystack);
len2 = strlen(needle);
if(len2==0) return 0;
for(i=0,j=0; i< len1; i++)
{
if(needle[j] == haystack[i])
{
j++;
}
else
{
i = i-j;
j = 0;
}
if(j == len2)
{
return i+1-j;
}
}
return -1;
*/
C++
class Solution {
public:
int strStr(string haystack, string needle) {
int len1 = haystack.length();
int len2 = needle.length();
if(len2 == 0)
return 0;
for(int i = 0; i <= len1 - len2; i++) {
for(int j = 0; j < len2 && needle[j] == haystack[i + j]; j++) {
if(j == len2 - 1)
return i;
}
}
return -1;
}
};