(13)字符串查找

来源:互联网 发布:asp.net 数据输入 编辑:程序博客网 时间:2024/05/16 23:47

容易 字符串查找

18%
通过

字符串查找(又称查找子字符串),是字符串操作中一个很有用的函数。你的任务是实现这个函数。

对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。

如果不存在,则返回 -1

您在真实的面试中是否遇到过这个题? 
Yes
样例

如果 source = "source" 和 target = "target",返回 -1

如果 source = "abcdabcdefg" 和 target = "bcd",返回 1

挑战

O(n2)的算法是可以接受的。如果你能用O(n)的算法做出来那更加好。(提示:KMP)

class Solution {    /**     * Returns a index to the first occurrence of target in source,     * or -1  if target is not part of source.     * @param source string to be scanned.     * @param target string containing the sequence of characters to match.     */    public static int strStr(String source, String target) {                if(source==null || target==null)            return -1;        int lent = target.length();        int lens = source.length();        for(int i=0;i<lens-lent+1;i++)    {        String sou = source.substring(i, i+lent);        if(sou.compareTo(target)==0)        {        return i;        }        }        return -1;    }}



0 0