实现 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

示例 3:

输入:haystack = “”, needle = “”
输出:0

提示:

0 <= haystack.length, needle.length <= 5 * 104
haystack 和 needle 仅由小写英文字符组成
通过次数472,555提交次数1,164,080


解法一:

package com.kk;public class RealizestrStr {public static int strStr(String haystack, String needle) {if(needle == null || needle == ""){return 0;}return haystack.indexOf(needle);//indexOf():查找一个字符串中,第一次出现指定字符串的位置。}
}
//indexOf用法
//https://wenwen.sogou.com/z/q849434101.htm

实现调用:

package com.kk;import java.util.Scanner;public class RealizestrStr {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String haystack=scanner.nextLine();String needle=scanner.nextLine();System.out.println(strStr(haystack, needle));}public static int strStr(String haystack, String needle) {if(needle == null || needle == ""){return 0;}return haystack.indexOf(needle);//indexOf():查找一个字符串中,第一次出现指定字符串的位置。}
}
//indexOf用法
//https://wenwen.sogou.com/z/q849434101.htm

indexOf用法


解法二:

public static 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;}
}}}if (flag){return i;}}return -1;}
}

力扣——实现 strStr()相关推荐

  1. 力扣(LeetCode)刷题,简单题+中等题(第20期)

    目录 第1题:判断能否形成等差数列 第2题:整数拆分 第3题:魔术索引 第4题:连续数列 第5题:字符串相加 第6题:数组拆分1 第7题:找出数组中的幸运数 第8题:期望个数统计 第9题:检查单词是否 ...

  2. 力扣(LeetCode)刷题,简单题(第14期)

    目录 第1题:配对交换 第2题:比较字符串最小字母出现频次 第3题:交替位二进制 第4题:二进制间距 第5题:最后一块石头的重量 第6题:旋转数字 第7题:十进制整数的反码 第8题:连续子数组的最大和 ...

  3. 力扣(简单+中等)50题整理总结

    文章目录 前言 一.简单题 1. 两数之和 7. 整数反转 9. 回文数 13. 罗马数字转整数 14. 最长公共前缀 20. 有效的括号 21. 合并两个有序链表 26. 删除有序数组中的重复项 2 ...

  4. 力扣编程题-解法汇总

    一.力扣链接: 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 备注:以后每个工作日从前往后刷一道题,然后再加一道每日新题.每天两道题. 二.模版: 标题: 力扣解法汇总5-正则表达 ...

  5. 力扣刷题记录_字符串(自学)

    字符串 一.字符串 1.反转字符串(力扣344) 2.反转字符串 II(力扣541) 3.替换空格(剑指 Offer 05) 4.翻转字符串里的单词(力扣151) 5.左旋转字符串(剑指 Offer ...

  6. LeetCode 力扣算法题解汇总,All in One

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: https://fuxuemingzhu.cn 关键词:LeetCode,力扣,算法,题解,汇总,解析 把自己刷过的所有题目做一个整理, ...

  7. LeetCode(力扣)初级算法 字符串篇

    目录 1.反转字符串 2.整数反转 2.1第一版代码 2.2第二版代码 3.字符串中的第一个唯一字符 3.1第一版代码 3.2第二版代码 3.3第三版代码 4.有效的字母异位词 4.1第一版代码 4. ...

  8. leetcode(力扣)刷题笔记(c++、python)【上】

    文章预览: 数组 1.二分查找 704. 二分查找 相关题目: 35.搜索插入位置 34. 在排序数组中查找元素的第一个和最后一个位置 69.x 的平方根 367.有效的完全平方数 2.双指针 27. ...

  9. 【力扣刷题笔记】初级算法

    初级算法 数组 1.删除排序数组中的重复项 题目 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.元素的 相对顺序 应该保持 ...

最新文章

  1. 双非山东科技胜过吉大,湖南大学超哈工大,US News2022世界大学排行榜引热议...
  2. Django模板用法
  3. 简单说一下Nginx配置说明
  4. 【26】Python Iterator笔记
  5. ASP.NET Page执行顺序如:OnPreInit()、OnInit()
  6. vst3插件_Blue Cat Audio Blue Cat PatchWork mac(蓝猫桥接插件)
  7. 两张趣图助你理解 HTTP 状态码
  8. 【Python】 dict 以key名 去重运算
  9. 复习Java异常处理_异常分类_自定义异常_线程初步了解
  10. java 类的传递_Java基本类型的传递
  11. 80多个Ajax解决方案
  12. STM32应用笔记分类汇总,值得收藏
  13. 淘宝宝贝排名影响因素有哪些?
  14. python的cubes怎么使用_Python measure.marching_cubes方法代碼示例
  15. 3A算法—自动对焦(AF)
  16. linux中shift用法,Linux shell脚本中shift的用法说明
  17. 辣评10月自主轿车销量:帝豪下滑 “寒冬”之下取暖还得靠新能源
  18. 2020-10-19 Nvidia与vGPU
  19. unity 平移图片_Unity3D研究院之脚本实现模型的平移与旋转(六)
  20. 2018年应届毕业宇视科技嵌入式软件开发工程师面试笔试总结

热门文章

  1. 福利月|这个月你想要什么书
  2. iOS地图之MapKit框架
  3. matlab fscanf用法
  4. Android 浏览器启动应用程序
  5. (转载)valgrind,好东西,一般人我不告诉他~~ 选项
  6. Linux 服务器安全加固 10条建议
  7. 开源Scout攻击检测工具
  8. Linux系统时间不同步问题
  9. DOC命令大全【详细版】
  10. cmd命令之参数 c