Implement strStr() - LeetCode

来源:互联网 发布:趣味编程Scratch ppt 编辑:程序博客网 时间:2024/06/05 05:53

Implement strStr().

Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.

这道题有很多需要注意的小点:


(1)You have to check if a String == null before call length(), otherwise it will throw NullPointerException. 所以我们要先判断null。

(2) 其次,如果不为null,不代表这个串长度不会为0。所以我们要做以下的判断。

int nlen = needle.length();         int hlen = haystack.length();         if(hlen == 0 && nlen == 0)         return "";         else if(hlen == 0 )         return null;         else if(nlen == 0)         return haystack;

(3) Substring这个方法endIndex是不包括的,所以我们必须这样写:

if(haystack.substring(i, i + nlen ).equals(needle))        return haystack.substring(i);

应为i + len而不是i + len - 1。


以下是我AC的代码:

public class Solution {    public String strStr(String haystack, String needle) { if(haystack == null) return null; else if(needle == null)        return haystack; else{        int nlen = needle.length();         int hlen = haystack.length();         if(hlen == 0 && nlen == 0)         return "";         else if(hlen == 0 )         return null;         else if(nlen == 0)         return haystack;        for(int i = 0; i < hlen; i++){        if(nlen > hlen - i){        return null;        }        else{        if(haystack.substring(i, i + nlen ).equals(needle))        return haystack.substring(i);        }        }        }return null;    }}



0 0
原创粉丝点击