LeetCode 28: Implement strStr()
来源:互联网 发布:数据库原理视频专辑 编辑:程序博客网 时间:2024/06/05 03:59
原题链接在此:https://leetcode.com/problems/implement-strstr/
这是一道经典的题目,要实现在字符串中找另一个字符串的功能,Java中对应的函数是String.indexOf()。这题没有什么捷径可走,无非就是两个循环依次遍历所有的情况,设两个字符串长度为m和n,则总时间复杂度是O(m * n)。这里要注意的是:这样直接提交会超时。要对算法做如下优化:当haystack的剩余长度已经小于needle的剩余长度时,肯定找不到了,直接略过这些运算。这样优化后的时间复杂度是O((m - n) * n)。
public int strStr(String haystack, String needle) { int m = haystack.length(); int n = needle.length(); // 长度为0时直接判断为0 if (n == 0) return 0; for (int ret = 0; ret <= m - 1; ret++) { // 减枝,可以省去不少运算,不然提交会超时 if (m - ret < n) break; int i = ret; int j = 0; while (i <= m - 1 && j <= n - 1) { if (haystack.charAt(i) != needle.charAt(j)) break; i++; j++; } // 当遍历超过needle最后一位时,认为找到了合适位置 if (j == n) return ret; } return -1; }
阅读全文
0 0
- LeetCode(28)Implement Strstr()
- [leetcode 28] Implement strStr()
- LeetCode[28]Implement strStr()
- leetcode-28 Implement strStr()
- [LeetCode 28]Implement strStr()
- leetcode 28 Implement strStr()
- Leetcode 28 Implement strStr()
- LeetCode 28 - Implement strStr()
- LeetCode 28:Implement strStr()
- leetcode 28 -- Implement strStr()
- leetcode[28]:Implement strStr()
- leetcode 28: Implement strStr()
- Leetcode #28 Implement strStr()
- leetCode #28 Implement strStr()
- Leetcode#28||Implement strStr()
- leetCode 28 Implement strStr()
- [Leetcode]#28 Implement strStr()
- leetcode 28:Implement strStr()
- sql注入漏洞 为什么有 怎么解决
- 数据库内连接与外连接
- Macbook 命令行删除文件和目录
- 51Nod-1081-子段求和
- svn 常用命令
- LeetCode 28: Implement strStr()
- 浪潮之巅学习笔记
- CodeForces 317 D.Game with Powers(博弈论)
- Java 多线程
- 安卓项目五子棋代码详解(五)
- git clone error: RPC failed; result=22, HTTP code = 502
- require(),include(),require_once()和include_once()区别
- graph.js整合node和edge资源,对外提供访问接口
- PHPWAMP好吗?phpwamp怎么用?PHPWAMP和其他集成环境有什么区别吗??