题意
对比两个字符串,找到第二字符串在第一个字符串中的位置
我的代码
盲敲的代码,遇到几个没想到地方,
- 两个字符串为空
- 第一个字符串调用substring的时候可能超出了自己的长度
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16public class Solution {
public int strStr(String haystack, String needle) {
if(haystack.equals(needle)||needle.equals(""))
return 0;
for(int i=0;i<haystack.length();i++){
if(haystack.charAt(i)==needle.charAt(0)){
if(i+needle.length()>haystack.length())
break;
if(haystack.substring(i,i+needle.length()).equals(needle)){
return i;
}
}
}
return -1;
}
}
大神代码
我之所以会在前面加上if的判断,是因为如果为空字符串的时候会直接返回-1,这显然是不对的,大神直接把for循环中的判断依据条件去掉了,这样即使是空字符串也会进for循环,在循环中做了统一处理。
1 | public int strStr(String haystack, String needle) { |