程序媛詹妮弗
终身学习

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 }

 

posted on 2019-04-09 07:09  程序媛詹妮弗  阅读(113)  评论(0编辑  收藏  举报