全局重载运算符 gps Kotlin emacs safari pip wso2 angular ui router vue案例 vue动态绑定class vue组件开发 erp系统源码 jquery绑定click事件 oracle分页关键字 idea批量替换快捷键 matlab读入图片 mysql查询 mysqlinsert python算法 python学习教程 简单python脚本实例 python运行 java正则表达式 java编程语言 java终止线程 java集合框架图 java字符串相等 opengl编程指南 r语言和python 端口关闭工具 java疯狂讲义 电视免费软件 快打旋风3出招表 mac地址修改 京东钱包客户端 管理文件 1667 asp程序下载 分屏软件 平原门下客三千
当前位置: 首页 > 学习教程  > 编程语言

LeetCode刷题(11)--实现strStr()

2021/1/28 23:34:17 文章标签:

题目描述 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例: 输入: haystack “hello”, needle “ll” 输出: 2 示例: 输入: haystack “aaaaa”,…

题目描述

给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。

示例:
输入: haystack = “hello”, needle = “ll”
输出: 2

示例:
输入: haystack = “aaaaa”, needle = “bba”
输出: -1

解题思路

int strStr(string haystack,string needle)
{
	string s;
	int j=0;
	int n=0;
	if(needle=="")
		return 0;
	if(haystack.length()<needle.length())
		return -1;
	n=needle.length();
	for(int i=0;i<haystack.length();i++)
	{
		s=haystack.substr(i,n);
		if(s==needle)
		{
			return j;
		}
		j++;
	}
	return -1;
}
int main()
{
	string haystack = "hello";
	string needle  = "ll";
	string haystack1 = "aaaaa";
	string needle1  = "bba";
	cout<<strStr(haystack,needle)<<endl;
	cout<<strStr(haystack1,needle1)<<endl;
}

结果:
在这里插入图片描述
分析:
1.定义两个字符串haystack和needle。
2.如果字符串needle为空,返回0。
3.如果字符串haystack的长度小于字符串needle长度,返回-1。
4.获取字符串needle长度,遍历符串haystack,每次获取字符串haystack中的needle长度,判断获取的字符串是否等于needle字符串,往后移一位。
5.第一次找到返回j,找不到j+1,继续遍历寻找,一直找不到返回-1。


本文链接: http://www.dtmao.cc/news_show_650242.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?