LeetCode 实现strStr()

https://leetcode-cn.com/problems/implement-strstr/description/

我的解决方案:

public static int strStr(String haystack, String needle) {
        if(needle.length()>haystack.length())return -1;
        if(needle.equals(""))
            return 0;
        if(haystack.equals(""))
            return -1;
        for(int i=0;i<haystack.length();i++) {
            if(needle.charAt(0)==haystack.charAt(i)) {
                int res = i;
                boolean flag = true;
                for(int j=0;j<needle.length();j++) {
                    if(i<haystack.length()) {
                        if(needle.charAt(j)!=haystack.charAt(i)) {
                            flag = false;
                            break;
                        }
                        i++;
                    }
                    else if(j<needle.length())
                        return -1;
                }
                i=res;
                if(flag) return res;
            }
        }
        return -1;
    }

大部分人使用了contains split这两个Java中String的方法来解决该题

这个是用时最短的,真不知道该说什么:

class Solution {
    public int strStr(String haystack, String needle) {
      return haystack.indexOf(needle);
    }
}
上一篇:KMP笔记


下一篇:PHP 检查字符串是否包含子字符串