Leetcode28. Implement strStr()

class Solution {
    public int strStr(String haystack, String needle) {
        return haystack.indexOf(needle);
    }
}

先行为艺术一下= = 3ms,99.44%.

然后,

    public int strStr(String haystack, String needle) {
        if(needle==null||needle.length()==0) return 0;
        if(haystack==null||haystack.length()==0) return -1;
        if(haystack.length()<needle.length()) return -1;
        for(int i=0;i<haystack.length()-needle.length()+1;i++) {
            if(haystack.charAt(i)==needle.charAt(0)) {
                boolean isContain = true;
                for(int j=1;j<needle.length();j++) {
                    if(haystack.charAt(i+j)!=needle.charAt(j)) {
                        isContain=false;
                        break;
                    }
                }
                if(isContain) return i;
            }
        }
        return -1;
    }

8ms,33.13%。

很慢,但是我觉得可以了,用toCharArray可能会再快一点,但思路上是一样的,而且浪费了空间。

其他的方法都是调用了String的API,那何不直接像上面的行为艺术一样呢?

所以不调API的话,应该就是这个思路。

posted @ 2018-12-23 15:22  大胖子球花  阅读(76)  评论(0)    收藏  举报