leetcode-28-Implement strStr()

news/2024/7/8 12:20:18

题目描述:

Implement strStr().

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

Example 1:

Input: haystack = "hello", needle = "ll"
Output: 2

Example 2:

Input: haystack = "aaaaa", needle = "bba"
Output: -1

 

要完成的函数:

int strStr(string haystack, string needle)
 

代码:

int strStr(string haystack, string needle) 
    {
        if(needle.size()==0&&haystack.size()!=0)
            return 0;
        else if(needle.size()!=0&&haystack.size()==0)
            return -1;
        else if(needle.size()==0&&haystack.size()==0)
            return 0;
        else
        {
            int changdu=haystack.size()-needle.size();
            for(int i=0;i<=changdu;i++)
            {
                if(haystack.substr(i,needle.size())==needle)
                return i;
            }
            return -1;
        }
        
    }

 

注意事项:

1、边界情况的判定。haystack为空?needle为空?haystack比needle长度小?
 
2、haystack.substr(x,y),x为起始点index,y为长度,注意不可以让x和y超过haystack的限制。
 
3、string的size不是int类型,估计为unsigned类型。比如haystack="",needle="a",当cout<<haystack.size()-needle.size()<<endl;的时候,得到的会是一堆乱码,这时候强制类型转换,cout<<int(haystack.size()-needle.size())<<endl;才会得到-1的结果,这点在//**那里体现出来了。笔者在第一次submit的时候也犯了这个错误。

 

转载于:https://www.cnblogs.com/chenjx85/p/8708997.html


http://www.niftyadmin.cn/n/2639142.html

相关文章

rsync常见问题及解决办法(亲测)

摘要&#xff1a; rsync在使用中往往会报错误&#xff0c;综合自己亲身经验&#xff0c;总结几条错误的解决方案&#xff08;IP以10.10.10.10代替&#xff09;&#xff1a; 错误一&#xff1a; password file must not be other-accessible continuing without password file P…

WPF的消息机制(二)- WPF内部的5个窗口之隐藏消息窗口

目录 WPF的消息机制&#xff08;一&#xff09;-让应用程序动起来 WPF的消息机制&#xff08;二&#xff09;-WPF内部的5个窗口 &#xff08;1&#xff09;隐藏消息窗口 &#xff08;2&#xff09;处理激活和关闭的消息的窗口和系统资源通知窗口 &#xff08;3&#x…

(4)剑指Offer之链表相关编程题

一 链表中倒数第k个节点 题目描述&#xff1a; 输入一个链表&#xff0c;输出该链表中倒数第k个结点 问题分析&#xff1a; 一句话概括&#xff1a;两个指针一个指针p1先开始跑&#xff0c;指针p1跑到k-1个节点后&#xff0c;另一个节点p2开始跑&#xff0c;当p1跑到最后时&…

何给背景图像使用CSS3变形

摘要&#xff1a; 如何给背景图像使用CSS3变形呢&#xff1f;在这里&#xff0c;Craig Buckler给出了答案。 CSS3的transform属性可以缩放、倾斜和旋转任何元素。在没有任何浏览器前缀的前提下&#xff0c;这个属性已经被所有的现代浏览器所支持。如果想支持黑莓浏览器和安卓版…

nginx次级域名部署dva静态项目!

这几天为了部署前端项目的事情&#xff0c;头都搞大了。又没有运维的支持&#xff0c;全靠我这个前端开发弄&#xff0c;真是踩了部署的各种坑了。 这里说一下 nginx 次级域名部署基于 dvajs 开发 react 框架的静态项目的注意要点。 基于 dvajs 框架的开发环境搭建&#xff0c;…

软件质量没有银弹:阿里巴巴的25个技术实践与坑

摘要&#xff1a; 在欧洲中世纪的传说中&#xff0c;有一种叫“人狼”的妖怪&#xff0c;就是人面狼身。它们会讲人话&#xff0c;专在月圆之夜去袭击人类。而且传说中对“人狼”用一般的枪弹是不起作用的&#xff0c;普通子弹都伤不到也打不死它&#xff0c;只有一种用银子作成…

asp.net core 框架搭建2-搭建MVC后台管理系统

文章目录 系列文章1.项目搭建1.1 新建Asp.net core MVC项目1.2 ASP.NET Core MVC目录结构1.3 创建一个控制器&#xff0c;与页面数据交互1.4 实现一个登录页面1.5 实现后台管理主界面 2.过程中知识点和涉及到的问题2.1 session的使用2.2 EF Core连接mysql 源码下载 作者&#x…

6月26日云栖精选夜读:成为一名Java高级工程师你需要学什么

摘要&#xff1a; 1.技术广度方面 至少要精通多门开源技术吧&#xff0c;研究过框架等的源码。 2.项目经验方面 从头到尾跟过几个大项目&#xff0c;头是指需求阶段&#xff0c;包括需求调研。 尾是指上线交付之后&#xff0c;包括维护阶段。 1.技术广度方面 至少要精通多门开源…