实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
示例 1:
输入: haystack = "hello", needle = "ll" 输出: 2示例 2:
输入: haystack = "aaaaa", needle = "bba" 输出: -1说明:
当
needle
是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当
needle
是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。
我的解答:
class Solution {
public int strStr(String haystack, String needle) {
//一些特殊的返回
if(needle.equals("") || needle == null){return 0;}
if(haystack.equals("") || haystack == null){return -1;}
if(needle.length() > haystack.length()){return -1;}
//转为char数组,便于遍历
char[] hayarr = haystack.toCharArray();
char[] needarr = needle.toCharArray();
for(int i = 0;i < hayarr.length - needarr.length +1;i++){
if(hayarr[i] == needarr[0]){
for(int j = 0;j < needarr.length;j++){
if(hayarr[i+j]!=needarr[j]){
break;
}
if(j == needarr.length -1){
return i;
}
}
}
}
return -1;
}
}