forked from rpj911/LeetCode_algorithm
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathStrStr.java
More file actions
33 lines (28 loc) · 932 Bytes
/
Copy pathStrStr.java
File metadata and controls
33 lines (28 loc) · 932 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package Algorithms.string;
public class StrStr {
public String strStr(String haystack, String needle) {
if (haystack == null || needle == null) {
return null;
}
int len1 = haystack.length();
int len2 = needle.length();
// Pay attention. if find "pl" in "apple", then len1 = 5, len2 = 2, the
// i should <= 3.
// so it should be i <= len1 - len2;
for (int i = 0; i <= len1 - len2; i++) {
int j = 0;
for (; j < len2; j++) {
if (haystack.charAt(i + j) != needle.charAt(j)) {
break;
}
}
// j goes to the end, it means that the loop never break. That means
// found the needle.
if (j == len2) {
return haystack.substring(i);
}
}
// didn't find the needle.
return null;
}
}