实现 strStr() 函数

2023-11-16

实现 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() 定义相符。

class Solution {
  public int strStr(String haystack, String needle) {
    int L = needle.length(), n = haystack.length();

    for (int start = 0; start < n - L + 1; ++start) {
      if (haystack.substring(start, start + L).equals(needle)) {
        return start;
      }
    }
    return -1;
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实现 strStr() 函数 的相关文章

  • C++ stack用法

    C 库以提供 模板 为主 所谓模板 是指不必预先制定类型的函数或类 我们可以借助STL 标准模板库 Standard Template Library STL 提供的高效算法来管理数据 为应对多种需求 STL为用户提供了多种名为容器 Con
  • 二叉树之遍历

    文章目录 一 二叉树的基本概念及实现 1 根结点 2 父结点 3 子结点 4 二叉树数据结构的实现 二 二叉树的遍历方法 1 前序遍历 2 中序遍历 3 后序遍历 4 层序遍历 三 几种遍历的实现 1 递归方法实现 2 迭代方法实现 3 M
  • 广度优先搜索(1)之树的层序遍历

    文章目录 零 导言 一 例子引入 1 题目描述 2 题目分析 3 算法实现与解释 二 概念定义 1 定义 2 深入理解 3 相关知识 三 相关习题 零 导言 这一系列博客的创作初衷是为了记录自己在刷题过程中对于一些比较经典的并且很哇塞的题型
  • 力扣刷题-56 - I. 数组中数字出现的次数、位运算的应用

    一个整型数组 nums 里除两个数字之外 其他数字都出现了两次 请写程序找出这两个只出现一次的数字 要求时间复杂度是O n 空间复杂度是O 1 c 位运算 位运算 计算机中是用二进制存储数据 一个字节包含8个位 每个 1 或者 0 就是一位
  • 二分查找的各种应用详解(C++)

    基本概念 Binary Search 二分查找也称折半查找 它是一种效率较高的查找方法 使用二分查找要求线性表必须采用顺序存储结构 而且表中元素按关键字有序排列 基本原理 查找 因为序列已经单调且有序排列 从中间位置开始比较 一次可以排除一
  • Lecture 9

    绪论 这一章节介绍的是divide and conquer multiplication divide的意思是分开 conquer的意思是占据 控制 divide and conquer直译下来就是分开后控制 其实就是分而治之的意思 mul
  • 顺序查找算法C语言实现

    顺序查找算法 实现思想 静态查找表用顺序存储结构表示时 顺序查找的查找过程为 从表中的最后一个数据元素开始 逐个同记录的关键字做比较 如果匹配成功 则查找成功 反之 如果直到表中第一个关键字查找完也没有成功匹配 则查找失败 应用场景 顺序查
  • 递归实现栈的翻转

    递归实现栈的翻转 主要考察对于递归的理解 其实这个问题最简单的方法当然是设计一个空的栈来存储这些元素 一次达成逆序 但是题目要求使用递归的方式实现逆序 因此需要借助函数返回栈来充当这个这个栈的作用 实际上依然是借助了一个栈 但是这个栈是函数
  • 链表-单向链表、双向链表、链表反转、删除链表指定指定值

    目录 单向链表 双向链表 链表反转 删除链表中指定的所有值 单向链表 package basic linkedList public class SingleNode public SingleNode next public int va
  • 【算法】KMP算法实现顺序串各种模式匹配运算的算法设计

    C 版 一 设计任务 编写程序 利用顺序串的基本运算 建立目标串以及模式串 用BF算法求出t在s中的位置 求出模式串的next数组以及nextval数组 KMP算法使用next数组以及改进的KMP算法使用nextval数组求出t在s中的位置
  • 【剑指offer】数据结构——队列 栈 堆

    目录 数据结构 树 剑指offer 09 用两个栈实现队列 剑指offer 30 包含min函数的栈 剑指offer 31 栈的压入 弹出序列 剑指offer 41 数据流中的中位数 剑指offer 59 2 队列的最大值 数据结构 树 剑
  • 单链表按照指定顺序插入节点(思路分析) [数据结构][Java]

    单链表按照特定顺序插入节点 思路分析 这里我们要实现在自定义的英雄链表中添加英雄时 根据排名将英雄插入到指定位置 如果有链表中已经有这个排名了 那么就添加失败 并且给出提示 思路分析 首先找到待添加结点位置的前一个位置 涉及到遍历 所以是通
  • 【经典排序算法】3. 插入排序

    对顺序性强的数据 插入排序就比较快 最好情况O n 代码如下 public class Main public static void main String args int arr 3 3 5 6 2 1 arrPrint arr In
  • 【Leetcode】863. 二叉树中所有距离为 K 的结点

    题目描述 题解 用map记录每个结点的父结点 然后让dfs从target结点开始 假设target就是根结点 然后递归时纪录深度 只要深度等于k 就是和target的距离等于k 就可以存入list 执行用时 14 ms 在所有 Java 提
  • 链表与约瑟夫环 - JavaScript版

    前言 在很多编程语言中 数组需要预先给定一个长度 添加新的元素很难 而且添加 删除等操作也比较烦 需要循环操作 JavaScript提供了push 和splice 等函数来解决这类问题 注意 在js中数组是对象 Object js没有内置链
  • 剖析高性能队列Disruptor背后的数据结构和算法

    本文是学习算法的笔记 数据结构与算法之美 极客时间的课程 Disruptor 是一种内存消息队列 它经Java 中另外一个非常常用的内存消息队列 ArrayBlockQueue ABS 的性能 要高出一个数量级 可以算得上是最快的内存消息队
  • 【Leetcode】225. 用队列实现栈

    题目描述 请你仅使用两个队列实现一个后入先出 LIFO 的栈 并支持普通栈的全部四种操作 push top pop 和 empty 实现 MyStack 类 void push int x 将元素 x 压入栈顶 int pop 移除并返回栈
  • 2020年全国高校计算机能力挑战赛初赛java语言解答

    题目1 统计从1到N的整数中 所有立方值的平方根为整数的数的格式 输入说明 整数N N lt 10000 输出说明 符合条件的数的个数 如4 3 64 8 2 输入样例 10 输出样例 3 说明 样例中符合条件的3个数是1 4 9 publ
  • 完全二叉树与满二叉树

    去笔试了很多次 每次都有有关于二叉树的题目 而且其中最多的是关于完全二叉树 然而完全二叉树在哥心中的形态一直很模糊 究其原因是我把完全二叉树和满二叉树搞混了 其实满二叉树是完全二叉树的特例 因为满二叉树已经满了 而完全并不代表满 所以形态你
  • 【LeetCode刷题笔记】位运算

    231 2 的幂 解题思路 1 除法 不断循环判断 如果能被 2 整除 就不断除以 2 直到不能被 2 整除为止 最后结果如果是 1

随机推荐

  • 手把手看监控--当不设置JVM-Xms时

    背景 运维埋的一个坑 在该应用上只配置留 Xmx 没有配置 Xms 表象 堆内存从0 2G开始 最大到0 8G 就开始执行GC 导致频繁GC 大致间隔1分钟 次 从下图左侧即可看到 解决 增加 Xms重新发版本 堆内存 GC间隔明显看着好多
  • 网关服务器性能,服务网关API路由导致的性能问题分析

    背景 酷家乐是从 16 年初开始进行服务化改造的 因为一些特殊原因 无法直接使用主流的dubbo 或 spring cloud 因此酷家乐研发团队在开源的基础上做了二次开发 迅速上线了一套定制型的微服务框架 和其他微服务框架类似 酷家乐自己
  • Python3中使用argparse模块解析命令行参数

    argparse是Python的一个标准模块 用于解析命令行参数 即解析sys argv中定义的参数 实现在 https github com python cpython blob main Lib argparse py argpars
  • vs2017,vs2019 无法连接到Web服务器“IIS Express”

    不知道啥原因 突然就不能访问了 我的解决方式 在项目的根目录下显示所有隐藏的文件 找到 vs文件夹 删除 重启项目 尝试运行 发现正常了 完 转载于 https www cnblogs com lishidefengchen p 11434
  • C++及模式设计系列

    1 博客 偶尔e网事 C http blog csdn net jackyvincefu article category 1501695 1 1 博客 wuzhekai1985 设计模式C 实现 http blog csdn net wu
  • Ubuntu 玩机笔记

    文章目录 键盘Fn无法切换功能键与多媒体键 永久生效 保持Typore旧版本 不自动更新 修改日期显示为英文 键盘Fn无法切换功能键与多媒体键 终端输入 echo 2 sudo tee sys module hid apple parame
  • CMAKE_INSTALL_PREFIX无效的解决方案

    今天写一段cmake脚本 使用了变量CMAKE INSTALL PREFIX 命令如下 SET CMAKE INSTALL PREFIX
  • 计算机复试练习题2

    1求1 2 20 include
  • zjy-easyinput文本框带按钮,uni-easyinput增强版

    一 zjy calendar简介 zjy calendar日历是对uniapp uni easyinput文本框的增强 支持文本框前后加按钮 二 使用方法 源使用说明 https uniapp dcloud net cn component
  • 功率和evm的关系_详解功率放大器PA设计指标

    PA指标分析 一 PA的工艺 PA的设计指标包括频率 带宽 功率 效率 线性度 甚至可能也要要求噪声 目前主要有两种工艺CMOS和GaAs CMOS工艺 比GaAs有优势的地方 主要是集成度和成本 所以但凡是要求效率 噪声 线性度等指标的放
  • STM32 以太网W5500

    文章目录 W5500简介 以太网接入方案 SPI读写访问 寄存器以及地址 源码以及配置 实现 TCP Server 三次握手过程 SPI 配置 网络相关函数 W5500简介 W5500 是一款全硬件 TCP IP 嵌入式以太网控制器 为嵌入
  • 嵌入式(线程的创建和回收)

    线程的创建 include
  • 我的第一个油猴脚本「屏蔽CSDN底下的登录栏」

    CSDN博客不登录就弹这么个东西 挡住视线不胜其烦 你问我为啥不登录 登录过呀 关了浏览器又要重新登 csdn的session不保存的吗 emmmm我也不太懂这方面的东西 于是我就想 在每次访问csdn博客的时候 浏览器都能自动执行一个js
  • c++ vector基本函数、排序、查找用法

    终于把自己的个人博客安排上啦 欢迎访问我的个人博客 XJHui s Blog vector用法目录 1 基本用法 2 vector的删除操作 3 vector的sort排序 4 翻转vector中的所有元素 5 find 函数的用法 6 v
  • python中shutil.copy()的用法

    shutil copy src dst 是为了复制文件内容且不包含元数据从src到dst dst必须是完整的文件路径文件名 注意 如果src和dst是同一个文件 就会引发错误 dst必须是可写的 否则将引发错误 如果dst已经存在 就会被替
  • C++函数模板的具体化

    一 函数模板的具体化 先看看C 98里面有关具体化方法的标注 对于给定的函数名可以有非模板函数 模板函数 显式具体化函数以及它们的重载函数 显示具体化以template lt gt 打头 并通过函数参数来指示类型 优先级顺序为 非模板函数
  • PyCharm分屏,左右。

    Windows下安装的pycharm 为了对比两个文件的不一致 把新旧文件 左右分屏呈献 操作如下图 即可把当前编辑界面 呈献在屏幕2中 左右对比更方便 当然也可以选择上下分屏 Split Horizontally
  • 程序员工资真的高吗?

    一直以来都很奇怪的事情 每当别人知道我晚上7点才下班 他们几乎都是会发出这样的惊呼 你居然这么晚才下班 而每当这个时候又轮到我来惊呼了 这么早7点就下班还算晚 每次打听别人的下班时间 要么5点30就下班了 要么6点就下班了 打听完了 这个时
  • 【A-Star算法】【学习笔记】【附GitHub一个示例代码】

    文章目录 一 算法简介 二 应用场景 三 示例代码 Reference 本文暂学习四方向搜索 一 算法简介 一个比较经典的路径规划的算法 相关路径搜索算法 广度优先遍历 BFC 深度优先遍历 DFC Di jkstra算法 最短路径问题 D
  • 实现 strStr() 函数

    实现 strStr 函数 给定一个 haystack 字符串和一个 needle 字符串 在 haystack 字符串中找出 needle 字符串出现的第一个位置 从0开始 如果不存在 则返回 1 示例 1 输入 haystack hell