LeetCode -- Implement strStr()

Question:

Implement strStr().

Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

 

Analysis:

实现strStr()函数,

返回在字符串hayStack中第一次出现needle的位置,如果在haystack中没有出现,则返回-1。

思路:

挨个字符往下比较,如果当前比较过程中出现一个不等的情况,则break此次循环,往下走一个字符。

未考虑的情况:

1. needle的长度大于haystack的长度;

2. 没有考虑比较时,i的越界情况。

 

Answer:

public class Solution {
    public static int strStr(String haystack, String needle) {
        if(haystack.length() < needle.length())
                return -1;
        if(haystack.length() == 0)
                return 0;

        char[] ch1 = haystack.toCharArray();
        char[] ch2 = needle.toCharArray();
        for(int i=0; i<=ch1.length - ch2.length; i++) {
                int j = 0;
                for(; j<ch2.length; j++) {
                    if(ch1[i+j] != ch2[j])
                        break;
                }
                if(j == ch2.length)
                    return i;
        }
        return -1;
    }
}

 

posted @ 2015-11-06 16:49  江湖小妞  阅读(216)  评论(0编辑  收藏  举报