资讯专栏INFORMATION COLUMN

leetcode28 Implement strStr() 在字符串中寻找目标字符串

FingerLiu / 1176人阅读

摘要:题目要求在子字符串中寻找目标字符串,并返回该字符串第一次出现时的下标在尝试的写了一提中等难度的题目后,又一次回到简单难度的题寻找温暖思路一在原字符串中中寻找目标字符串首字母的下标,并提取子字符串,若该字符串的开头等于目标字符串,则返回该下

题目要求: 在子字符串中寻找目标字符串,并返回该字符串第一次出现时的下标

在尝试的写了一提中等难度的题目后,又一次回到简单难度的题寻找温暖T-T

思路一

在原字符串中中寻找目标字符串首字母的下标,并提取子字符串,若该字符串的开头等于目标字符串,则返回该下标
优点:速度相对较快
缺点:深度依赖api

public int strStr(String haystack, String needle) {
        int haystackLength = haystack.length();
        int needleLength = needle.length();
        if(haystackLengthhaystackLength){
                index = -1;
                break;
            }
            if(haystack.substring(index).startsWith(needle)){
                break;
            }
            int tempIndex = haystack.substring(index+1).indexOf(start);
            index = tempIndex==-1?-1:(tempIndex+index+1);
        }
        return index;
    }
思路二

提取当前下标的子字符串并判断开头是否相等,相等则返回该下标

    public int strStr2(String haystack, String needle){
        int index = 0;
        for( ; index+needle.length()<=haystack.length() ; index++){
            if(haystack.substring(index).startsWith(needle)){
            //if(haystack.substring(index, index+needle.length).equals(needle){
                return index;
            }
        }
        if(index+needle.length()==haystack.length()){
            index = -1;
        }
        return index;
    }


想要了解更多开发技术,面试教程以及互联网公司内推,欢迎关注我的微信公众号!将会不定期的发放福利哦~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66890.html

相关文章

  • leetcode 28 Implement strStr()

    摘要:如果存在,返回子字符串的在长字符串的起始点的位置。如果不存在,则返回。就是遍历长字符串,并通过比较字符找到是否存在目标子字符串。需要注意一下的就是对特殊情况的判断,以减少无谓的时间消耗。 题目详情 Implement strStr().Return the index of the first occurrence of needle in haystack, or -1 if nee...

    Gemini 评论0 收藏0
  • LeetCode 28:实现strStr() Implement strStr()

    摘要:爱写作者爱写实现函数。说明当是空字符串时,我们应当返回什么值呢这是一个在面试中很好的问题。对于本题而言,当是空字符串时我们应当返回。这与语言的以及的定义相符。利用内建函数直接得结果。如果子字符串为空,返回。 爱写bug(ID:icodebugs)作者:爱写bug 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符...

    alaege 评论0 收藏0
  • LeetCode 28:实现strStr() Implement strStr()

    摘要:爱写作者爱写实现函数。说明当是空字符串时,我们应当返回什么值呢这是一个在面试中很好的问题。对于本题而言,当是空字符串时我们应当返回。这与语言的以及的定义相符。利用内建函数直接得结果。如果子字符串为空,返回。 爱写bug(ID:icodebugs)作者:爱写bug 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符...

    ivydom 评论0 收藏0
  • [Leetcode] Implement strStr() 实现StrStr

    摘要:最新更新暴力法复杂度时间空间思路本题有很多高级算法可以在时间内解决问题,然而这已经超出面试的范畴。本题在面试中出现的作用就是考察基本的编程素养,以及边界条件的考虑。它使用一个数组,这个数组记录了模式串自身的前缀和后缀的重复情况。 Implement strStr() 最新更新:https://yanjia.me/zh/2019/02/... Implement strStr().Re...

    remcarpediem 评论0 收藏0
  • [LeetCode] Implement strStr()

    Problem Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. Note 有substring,为何不用。 Solution public class Solution { public ...

    fuyi501 评论0 收藏0

发表评论

0条评论

FingerLiu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<