博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode Implement strStr()
阅读量:5098 次
发布时间:2019-06-13

本文共 1264 字,大约阅读时间需要 4 分钟。

Implement strStr().

Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.


解题思路:

解题想法是,从haystack的第一个位置,开始逐个判断是不是子串。如果整个子串都匹配了,那么就返回,否则继续往下挪位置。

Complexity: O(mn) , m is the length of haystack, n is the length of needle

还有一个KMP解法,算法复杂度很好,但目前没研究。以后再说。


Java code:

public int strStr(String haystack, String needle) {        if( haystack == null || needle == null || needle.length() == 0 ) {             return 0;        }        for(int i = 0; i < haystack.length(); i++) {            if(i + needle.length() > haystack.length()) {                return -1;            }            int m = i;            for(int j = 0; j < needle.length(); j++) {                if(needle.charAt(j) == haystack.charAt(m)){                    if(j == needle.length()-1) {                        return i;                    }                    m++;                }else {                    break;                }            }        }        return -1;    }

Reference:

1. http://www.programcreek.com/2012/12/leetcode-implement-strstr-java/

2. http://jakeboxer.com/blog/2009/12/13/the-knuth-morris-pratt-algorithm-in-my-own-words/

3. http://www.cnblogs.com/springfor/p/3896469.html

 

转载于:https://www.cnblogs.com/anne-vista/p/4866205.html

你可能感兴趣的文章
ORACLE 递归查询
查看>>
[Android] 开发第十天
查看>>
操作~拷贝clone()
查看>>
jQuery源码分析(2) - 为什么不用new jQuery而是用$()
查看>>
[转]【EL表达式】11个内置对象(用的少) & EL执行表达式
查看>>
ArrayList对象声明& arrayList.size()
查看>>
并发编程 线程
查看>>
网络编程
查看>>
关于“设计模式”和“设计程序语言”的一些闲话
查看>>
(一二九)获取文件的MineType、利用SSZipArchive进行压缩解压
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
【转载】基于vw等viewport视区相对单位的响应式排版和布局
查看>>
<转>关于MFC的多线程类 CSemaphore,CMutex,CCriticalSection,CEvent
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>