Lintcode字符串查找

来源:互联网 发布:啊哈,算法 豆瓣 编辑:程序博客网 时间:2024/06/05 19:43

字符串查找 

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

说明

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

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

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

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

public class Solution {
    /*
     * @param source: source string to be scanned.
     * @param target: target string containing the sequence of characters to match
     * @return: a index to the first occurrence of target in source, or -1  if target is not part of source.
     */
    public int strStr(String source, String target) {
        // write your code here
        if(source==null||target==null){
                return -1;
        }else{
        if(source.contains(target)==false){
            return -1;
        }
        if(target.length()==0||source.length()==0||target.length()==source.length()){
                return 0;
            }
    else{
            String a[]=source.split(target);//用target把source分割开来,第一个字符串的长度就是要找的位置
            return a[0].length();
        }
    }}
}

结果:

原创粉丝点击