LeetCode 28. Implement strStr()

本文介绍了一个strstr函数的具体实现过程,该函数用于查找一个字符串在另一个字符串中的首次出现位置,并返回相应的下标。若未找到,则返回-1。文章详细解释了逐字符比较的方法,并提供了完整的C++代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

28. Implement strStr()

Description
Implement strStr().

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

Analysis
这道题的意思就是实现一个strstr函数。
这个函数的返回值是子字符串在字符串中首先出现的下标,若没有则返回-1。
我的做法是比较字符串与子字符串,看当前子字符串是否存在于字符串中。
一个一个匹配,当完全匹配后则返回当前下标减去子字符串长度得到结果。
否则结果返回-1。

Code

class Solution {
public:
    int strStr(string haystack, string needle) {
        int index ;
        int len =haystack.size();
        //len==0&&
        if(needle.size()==0) return 0;
        for(int i = 0 ; i <len;++i){
            index = 1;
            if(haystack[i] == needle[0]){
                int j = 0;
                for(j = i+1;j < len;++j){
                    if(index == needle.size() || haystack[j] != needle[index]){
                        break;
                    } 
                    index ++;
                }
                if(index == needle.size()) return j - index;
            }
        }
        return -1;
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值