javascript-字节跳动,腾讯大厂面试题——力扣(28)实现strStr()
题目
【javascript-字节跳动,腾讯大厂面试题——力扣(28)实现strStr()】给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。解题思路
示例
输入: haystack = "hello", needle = "ll"
输出: 2
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/implement-strstr
- 首先我们看到题目的时候,就会直接想到使用indexOf(),来返回检索的下标。但是我们使用这种方式有点投机取巧。我们应该用最底层的方法来实现。
- 第二种,底层实现
- 首先先判断传入的第二个字符是否为空,就返回0.
- 之后我们循环遍历给定的字符串,将当前字符和检索字符的第一项对比,如果相同。我们就创建一个index=0来记录,比对成功的次数。
- 比对成功后,我们就循环遍历要查找的字符串。让当前字符和之前字符串的字符对比。比对不成功就直接跳出,如果比对成功,index++。
- 之后我们遍历完要查找的字符串,比对一下index和要检索的字符串的长度是否相等,如果相等。我们就直接返回外部循环的i。
- 最后我们所有对比不成功,就返回-1。
- 话不多说,直接上代码。
// 取巧的方法
function strStr(haystack, needle){
return haystack.indexOf(needle);
};
- 原始的方法
function strStr(haystack, needle){
if(needle === "") return 0;
for(var i = 0 ;
i < haystack.length ;
i++){
if(haystack[i] === needle[0]){
var index =0;
for(var j = 0 ;
j
推荐阅读
- java|java IO流小结
- java|新年快乐呀 , 给大家送上字节 Java 架构师面试汇总 + 架构师简历模板
- javascript|javascript--21--定时器
- 大数据|字节跳动火山引擎加入 Linux 云原生计算基金会(CNCF) | 新闻
- 软件测试|今天公司新来个字节25k出来的,让我见识到了真正的基础天花板
- 字节前端面试经验(已拿到offer)
- 【第四期】字节跳动一面 golang
- 2022年了春招要来了,字节跳动HR(给大家说点面试字节的干货!)
- 2022年 | 字节大佬推荐,超详细的Android(安卓)开发入门教程+Android Studio安装教程 !
- 招聘|字节跳动边缘计算团队等你来!