当前位置:网站首页>【LeetCode】28、实现 strStr()
【LeetCode】28、实现 strStr()
2022-07-19 11:16:00 【小曲同学呀】
28、实现 strStr()
题目:
实现 strStr()
函数。
给你两个字符串 haystack
和 needle
,请你在 haystack
字符串中找出 needle
字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。
说明:
当 needle
是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。
对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr()
以及 Java 的 indexOf()
定义相符。
示例1:
输入:haystack = "hello", needle = "ll"
输出:2
示例2:
输入:haystack = "aaaaa", needle = "bba"
输出:-1
解题思路:
此题可以用 暴力匹配: 来解决
我们可以让字符串needle
与字符串 haystack
的所有长度为 m 的子串均匹配一次。
为了减少不必要的匹配,我们每次匹配失败即立刻停止当前子串的匹配,对下一个子串继续匹配。如果当前子串匹配成功,我们返回当前子串的开始位置即可。如果所有子串都匹配失败,则返回 −1。
参考代码:
class Solution {
public int strStr(String haystack, String needle) {
int n = haystack.length(), m = needle.length();
for (int i = 0; i + m <= n; i++) {
boolean flag = true;
for (int j = 0; j < m; j++) {
if (haystack.charAt(i + j) != needle.charAt(j)) {
flag = false;
break;
}
}
if (flag) {
return i;
}
}
return -1;
}
}
边栏推荐
猜你喜欢
关于XML文件(八)-DOM和验证
提升开发效率的“轮子”
[Redux] I thoroughly understood the workflow of Redux with a picture (with cases and source code attached)
趣店罗敏:从寒门贵子到面临退市 再到抢占预制菜新风口
STM3(cubeIDE)点灯实验
【Latex】PPT畫圖,導出emf格式,word插入emf文件並導出pdf,pdf裁剪並導出eps文件,latex插入eps文件
【PPT】连续使用箭头等工具,避免多次重复选择,提升效率
The core of livedatabus is so simple
opencv学习-傅里叶变换体会及行方向傅里叶变换代码
System app signature JKS production and silent installation
随机推荐
Xinlaifu Xincai IPO meeting: annual revenue of 780million, with 47% equity held by Wang Xiaoming
基于pexels 图片素材api,整理出素材资源库
力扣------计算力扣银行的钱
STM3(cubeIDE)点灯实验
华泰证券账户开通流程,手机上开户安全吗
What is the difference between SSL and TLS
I used Kaitian platform to make a string check API [Kaitian apaas battle]
巧用RoaringBitMap处理海量数据内存diff问题
Mysql引擎介绍及InnoDB逻辑存储结构
生成订单30分钟未支付,则自动取消,该怎么实现?(典藏版)
0718-棉花棉纱涨停,市场大幅反弹
OneFlow v0.8.0正式发布
慧翰微电子冲刺深交所:年营收4.2亿 上汽创投是股东
"Wheels" to improve development efficiency
关于XML文件(八)-DOM和验证
6、微服务架构分析
如何用PHP解决高并发与大流量问题
vivo官网APP全机型UI适配方案
Leetcode selected top interview questions_ character string
卡片式链接