Leetcode
题目如下
实现strStr()函数
要求:给定一个haystack字符串和一个needle字符串,在haystack字符串中找出needle字符串出现的第一个位置(从0开始)。
如果不存在,则返回-1
示例1.
输入:haystack = “hello”, needle = “ll”
输出:2
示例2.
输入:haystack = “aaaaa”, needle = “bba”
输出:-1
注意:当needle是空字符时我们应当返回0。
具体代码实现如下:
public class Solution {
/**
* 实现strStr()函数
*
* 给定一个haystack字符串和一个needle字符串,在haystack字符串中找出needle字符串出现的第一个位置(从0开始)。
* 如果不存在,则返回-1
* 注意:当needle是空字符时我们应当返回0
*/
public int strStr(String haystack, String needle) {
//若needle为空字符串时返回0
if(needle.length() == 0)
return 0;
//先获得两个字符串的char值数组,便于对比
char[] charArrayhaystack = haystack.toCharArray();
char[] charArrayneedle = needle.toCharArray();
for(int i = 0; i < charArrayhaystack.length ; i++){
//从haystack中查找needle的第一个字符,若后面的字符也全部相同,则找到,返回第一个字符的位置
if(charArrayhaystack[i] == charArrayneedle[0])
{
int j = i + 1;
int k = i;
for(k = 1; k < charArrayneedle.length; k++){
if(charArrayhaystack[j] == charArrayneedle[k]){
j++;
//从haystack中查找needle对应的每一个字符
}else{
break;
}
}
if(k == charArrayneedle.length)
return i;
}
}
return -1;
}
}