当前位置: 首页 > news >正文

[100天算法】-实现 strStr()(day 52)

题目描述

实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。示例 1:输入: haystack = "hello", needle = "ll"
输出: 2
示例 2:输入: haystack = "aaaaa", needle = "bba"
输出: -1
说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/implement-strstr
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法 1:暴力

思路

将长串的所有子串与短串进行一一对比。

复杂度分析

  • 时间复杂度:$O(M*N)$,M 是长串的长度,N 是短串的长度。
  • 空间复杂度:$O(1)$。

代码

JavaScript Code

/*** @param {string} haystack* @param {string} needle* @return {number}*/
var strStr = function (haystack, needle) {if (!needle) return 0;let l = 0,r = needle.length;if (haystack[l] === needle[0]) {if (compare(haystack, needle, l, r)) return l;}l++;r++;}return -1;// ********************************function compare(long, short, l, r) {for (let i = 0; i < r - l; i++) {if (long[i + l] !== short[i]) return false;}return true;}
};

相关文章:

  • Selenium学习(Java + Edge)
  • 软考之知识产品+例题
  • Mozilla Firefox 119 现已可供下载
  • 算法通关村第四关|黄金挑战|表达式问题
  • window压缩包安装mongodb并注册系统服务
  • AlarmManager闹钟管理者
  • JAVA 实现PDF转图片(pdfbox版)
  • linux下mysql-8.2.0集群部署(python版本要在2.7以上)
  • 使用 PyTorch 构建自定义 GPT
  • android services
  • 国际多语言出海商城源码/返佣产品自动匹配拼单商城源码
  • MacOS将Node.js升级到最新版本
  • pytest 使用(二):前后置(固件,夹具)
  • asp.net老年大学教务管理信息系统VS开发sqlserver数据库web结构c#编程
  • Web Woeker和Shared Worker的使用以及案例
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Bootstrap JS插件Alert源码分析
  • CentOS7 安装JDK
  •  D - 粉碎叛乱F - 其他起义
  • Elasticsearch 参考指南(升级前重新索引)
  • es6--symbol
  • gulp 教程
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • miaov-React 最佳入门
  • Netty源码解析1-Buffer
  • ng6--错误信息小结(持续更新)
  • python学习笔记 - ThreadLocal
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Travix是如何部署应用程序到Kubernetes上的
  • Vue学习第二天
  • Web标准制定过程
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 聊聊flink的TableFactory
  • 那些被忽略的 JavaScript 数组方法细节
  • 一天一个设计模式之JS实现——适配器模式
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • # Java NIO(一)FileChannel
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (Note)C++中的继承方式
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)Sql Server 保留几位小数的两种做法
  • (转)程序员疫苗:代码注入
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .Mobi域名介绍
  • .NET关于 跳过SSL中遇到的问题
  • /etc/fstab和/etc/mtab的区别