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的话,应该就是这个思路。

浙公网安备 33010602011771号