Implement strStr().
Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Example 1:
Input: haystack = "hello", needle = "ll" Output: 2
Example 2:
Input: haystack = "aaaaa", needle = "bba" Output: -1
Clarification:
What should we return when needle
is an empty string? This is a great question to ask during an interview.
题意:
实现strStr() : Returns a pointer to the first occurrence of str2 in str1, or a null pointer if str2 is not part of str1.
Solution1:Two Pointers, finding substring[i...j] in str1,such that it equals str2
code:
1 /* 2 Time: O(n^2). 3 Space: O(1). 4 */ 5 6 class Solution { 7 public int strStr(String s1, String s2) { 8 //题意确认 return 0 when needle is an empty string 9 if(s2.length() == 0) return 0; 10 11 //for(int i = 0; i < s1.length(); i++){ 确保s1中含有s2,则扫s1的指针的范围可以缩小到s1.length() - s2.length() + 1 12 for(int i = 0; i < s1.length() - s2.length() + 1; i++){ 13 int j = i; 14 int k = 0; 15 while( j < s1.length() && k < s2.length() && s1.charAt(j) == s2.charAt(k)){ 16 j++; 17 k++; 18 } 19 if( k == s2.length()){ 20 return i; 21 } 22 } 23 return -1; 24 } 25 }