概述
题目:
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/implement-strstr
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
看完这题目,发现:这不就是indexOf()吗?HaHa~ SoEasy~????
Coding~
public int strStr(String haystack, String needle) {
return haystack.indexOf(needle);
}
但是吧,觉得这个解法是不是太水了????,然后“本着尊重出题者”的心态,静下心来,从出题者的想法出发,分析一波:
解题思路:
题目简单来说就是在 haystack 字符串中找出 needle(目标字符串)出现的第一个位置。
以needle的长度作为基准,每次从haystack字符串截取出needle.length()个字符,进行对比,遇到相同的返回i,直到遍历到haystack.length()-needle.length()为止没有发现相同的子字符串,那么如题返回-1即可。
Coding~
//needle长度
int nlen = needle.length();
//haystack长度
int hlen = haystack.length();
for(int i = 0 ; i <= hlen-nlen ; i++){
//截取haystack中needle长度的字符串,与needle比较,相等返回i
String substring = haystack.substring(i, i + nlen);
if (substring.equals(needle)) return i;
}
return -1;
我们测试一下吧~
public static void main(String[] args) {
String haystack = "aaaaa";
String needle = "bba";
strStr strStr = new strStr();
int i = strStr.strStr(haystack, needle);
System.out.println(i);
}
截图留念~
最后
以上就是潇洒水池为你收集整理的LeetCode-实现strStr()的全部内容,希望文章能够帮你解决LeetCode-实现strStr()所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复