【 关关的刷题日记46】Leetcode 28. Implement strStr()

关关的刷题日记46 – Leetcode 28. Implement strStr()

题目

Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

题目的意思是判断needle是否是haystack的子串,如果不是的话就返回-1,如果是的话就返回haystack中与needle匹配的子串的第一个字符的索引值。

方法1:遍历haystack,遇到与needle[0]相等的字符,就判断两个字符串接下来的needle.size()-1个字符是否匹配,匹配的话就返回haystack中第一个匹配字符的索引值。

class Solution {public:
    int strStr(string haystack, string needle) {
        if (needle.empty())
            return 0;
        for (int i = 0; i <= (int)(haystack.size() - needle.size()); ++i)
        {
            int j;
            for (j = 0; j < needle.size(); ++j)
            {
                if (haystack[j + i] != needle[j])
                    break;
            }
            if (j == needle.size())
                return i;
        }
        return -1;
    }};

方法2:用了substr。

class Solution {public:
    int strStr(string haystack, string needle) {
        if(needle.empty())
            return 0;
        for(int i=0; i<haystack.size(); i++)
        {
            if(haystack.substr(i,needle.size())==needle)
                return i;
        }
        return -1;
    }};

人生易老,唯有陪伴最长情,加油!

以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。

原文发布于微信公众号 - 专知(Quan_Zhuanzhi)

原文发表时间:2017-11-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏专知

关关的刷题日记07——Leetcode 26. Remove Duplicates from Sorted Array 方法1

关小刷刷题07 – Leetcode 26. Remove Duplicates from Sorted Array 方法1 题目 Given a sorted...

30140
来自专栏专知

关关的刷题日记79 – Leetcode 9 Palindrome Number

关关的刷题日记79 – Leetcode 9 Palindrome Number 题目 Determine whether an integer is a pa...

37080
来自专栏专知

【LeetCode 20】关关的刷题日记45 – Valid Parenthese

关关的刷题日记45 – Leetcode 20. Valid Parenthese 题目 Given a string containing just the ...

35370
来自专栏专知

【 关关的刷题日记50】 Leetcode 345. Reverse Vowels of a String

关关的刷题日记50 – Leetcode 345. Reverse Vowels of a String 题目 Write a function that ta...

27530
来自专栏专知

【LeetCode 389】 关关的刷题日记30 Find the Difference

关关的刷题日记30 – Leetcode 389. Find the Difference 题目 Given two strings s and t which...

35570
来自专栏移动开发面面观

排序备忘

排序是算法的一项基础能力,也是面试必考题。如何写一个恰当的排序,也是一个软件工程师的基本必备技能。

7610
来自专栏落影的专栏

程序员进阶之算法练习(三十一)

BAT常见的算法面试题解析: 程序员算法基础——动态规划 程序员算法基础——贪心算法 工作闲暇也会有在线分享,算法基础教程----腾讯课堂地址。

15630
来自专栏专知

【LeetCode 383】关关的刷题日记41 – Leetcode 383. Ransom Note

关关的刷题日记41 – Leetcode 383. Ransom Note 题目 Given an arbitrary ransom note string a...

36760
来自专栏专知

【 关关的刷题日记49】 Leetcode 434. Number of Segments in a String

关关的刷题日记49 – Leetcode 434. Number of Segments in a String 题目 Count the number of ...

28950
来自专栏数据结构与算法

P1538 迎春舞会之数字舞蹈

题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会。 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列。 为了配合每...

30570

扫码关注云+社区

领取腾讯云代金券