LeetCode题解java算法: 28. 实现 strStr()
2021/4/19 1:25:22
本文主要是介绍LeetCode题解java算法: 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
示例 3:
输入:haystack = "", needle = "" 输出:0
暴力破解法:
class Solution { public int strStr(String haystack, String needle) { int h=haystack.length(); int n=needle.length(); for(int start=0;start<h-n+1;start++){ if(haystack.substring(start,start+n).equals(needle)){ return start; } } return -1; } }
kmp算法:
class Solution { public int strStr(String haystack, String needle) { char [] h=haystack.toCharArray(); char[] n=needle.toCharArray(); int i=0;//设置主串的位置 int j=0;//设置子串的位置 while(i<h.length&&j<n.length){ if(h[i]==n[j]){ i++; j++; }else{ i=i-j+1; j=0; } } if(j==n.length){ return i-j; }else{ return -1; } } }
这篇关于LeetCode题解java算法: 28. 实现 strStr()的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南