13.strStr-字符串查找(容易题)

来源:互联网 发布:淘宝老a电商学院 编辑:程序博客网 时间:2024/06/10 17:45

字符串查找

  1. 题目

    对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。

  2. 说明

    在面试中我是否需要实现KMP算法?

    不需要,当这种问题出现在面试中时,面试官很可能只是想要测试一下你的基础应用能力。当然你需要先跟面试官确认清楚要怎么实现这个题。

  3. 样例

    如果 source = “source” 和 target = “target”,返回 -1。

    如果 source = “abcdabcdefg” 和 target = “bcd”,返回 1。

  4. 题解

    双指针暴力解法。

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 int strStr(String source, String target) {        if (source == null || target == null || source.length() < target.length())        {            return -1;        }        if (target.length() == 0)        {            return 0;        }        if (source.length() == 0)        {            return -1;        }        char[] char_s = source.toCharArray();        char[] char_t = target.toCharArray();        for (int i=0;i<=source.length()-target.length();i++)        {            if (char_s[i] == char_t[0])            {                for (int j=0,s=i;j<target.length();j++,s++)                {                    if (char_s[s] != char_t[j])                    {                        break;                    }                    if (j==target.length()-1)                    {                        return i;                    }                }            }        }        return -1;    }}

Last Update 2016.8.15

0 0