力扣28题---实现 strStr()
实现strStr()函数。
给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串出现的第一个位置(下标从0开始)。如果不存在,则返回-1。
说明:
当needle是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。
对于本题而言,当needle是空字符串时我们应当返回0。这与C语言的strstr()以及Java的indexOf()定义相符。
示例1:
输入:haystack="hello",needle="ll" 输出:2
示例2:
输入:haystack="aaaaa",needle="bba" 输出:-1
提示:
1<=haystack.length,needle.length<=10^4
haystack和needle仅由小写英文字符组成
不断截取主串,然后在比较:
public int strStr(String haystack, String needle) {
int len = needle.length();
if (len == 0) {
return 0;
}
int n = haystack.length() - len + 1;
for (int i = 0; i < n; i++) {
if (haystack.substring(i, i + len).equals(needle)) {
return i;
}
}
return -1;
}
官方的api,一行代码搞定:
public int strStr(String haystack, String needle) {
return haystack.indexOf(needle);
}