题目描述
实现 strStr() 函数。

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

示例 1:

输入: haystack = "hello", needle = "ll"
输出: 2

示例 2:

输入: haystack = "aaaaa", needle = "bba"
输出: -1

说明:

当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。

对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。

解法:
思路1:

/*** 暴力解法,直接遍历* 时间复杂度O(m*n)* 空间复杂度O(1)* @param haystack* @param needle* @return*/
public int strStr(String haystack, String needle) {if("".equals(needle)) {return 0;}for(int i=0;i<haystack.length();i++) {int j=0;for(;j<needle.length();j++) {if((i+j+1)>haystack.length() || haystack.charAt(i + j) != needle.charAt(j)) {break;}}if(j == needle.length()) {return i;}}return -1;}

/**
* 使用库函数,手动cry…
* 比思路1快100倍…
* 有空需要读懂String.indexOf()方法
* @param haystack
* @param needle
* @return
*/
public int strStr(String haystack, String needle) {
return haystack.indexOf(needle);
}

2019-03-18-算法-进化(实现strStr())相关推荐

  1. 2019.03.18 连接my sql

    11.登陆功能(链接MySQL) python manage.py starapp movie 新建一个应用模块之后要记得到setting添加这个应用模块 在python2中你还有去导入一个MySQL ...

  2. 168.Vue.js智能扫码点餐系统(二)【搭建Vue开发环境】2019.03.18

    0.知识点 搭建开发环境 1.搭建Vue开发环境 2.安装vue-cli脚手架 安装命令 // 第一种: npm install --global vue-cli// 第二种 cnpm install ...

  3. 《惢客创业日记》2019.03.18(周一)从创业角度看郭德纲(5)

    今天,继续分享<从创业角度看郭德纲>最后一期,前面四期已经把所有的人物和故事都交待完了.这最后一期就一起来思考三个问题. 第一个问题是郭德纲为什么年纪轻轻就能掀起第三波相声潮流? 我们从两 ...

  4. Unity3d 周分享(17期 2019.5.18 )

    选自过去1~2周 自己所看到外文内容:https://twitter.com/unity3d 和各种其他博客来源吧 1. [Unity]介绍可以在游戏画面上显示FPS,内存,音频,设备信息的" ...

  5. NeurIPS'18 | 种群进化随机梯度下降深度神经网络优化算法框架

    ,欢迎关注公众号:论文收割机(paper_reader) 因为排版问题,很多图片和公式无法直接显示,欢迎关注我们的公众号点击目录来阅读原文. 原文点击 ↓ 种群进化随机梯度下降深度神经网络优化算法框架 ...

  6. 《SRPG游戏开发》导航(2019.03.04更新)

    <SRPG游戏开发>导航 第一章到第五章并没有使用Markdown,且经过CSDN几次改版和取消目录,这几章排版有些怪怪的. 2019.03.04 第十一章(十 - 十二) ,间章 第十一 ...

  7. AI+5G:2019.03.31第11届中国(深圳)IT领袖峰会【IT新未来: 5G与人工智能】内容概要

    AI+5G:2019.03.31第11届中国(深圳)IT领袖峰会[IT新未来: 5G与人工智能]内容概要 导读 5G+AI双核启动会更加珠联璧合.相得益彰. IOT 采集数据 → Deel Learn ...

  8. 字节跳动2019春招算法题

    字节跳动2019春招算法题 1.总结 难度:容易到中等. 一些题出的太烂,不给数据范围,而且内存设置有问题,如果是刷题不建议刷. 2.题目 (1) 简单字符串模拟. #include<bits/ ...

  9. 2018.03.18 临汾市游记

    2018.03.18 临汾市游记 写在前面 首先,Capella 极其擅长记流水账,包括本文. 其次,本文中所有并列关系的人名,均按字典序排列. 背景 临汾一中 Mr_Wolfram 和 poorpo ...

  10. Anaconda 2019.03 发布,Python 跨平台科学计算软件

    Python 科学计算包 Anaconda 发布 2019.03 版本,详细更新日志如下: 面向用户更改 conda与Windows Powershell完美集成. Windows Python包中包 ...

最新文章

  1. Codeforces Round #554 (Div. 2) C. Neko does Maths (简单推导)
  2. QEMU KVM 虚拟机移植之性能提高篇小结(android 虚拟机双系统方案)
  3. JavaScript实现squareRoot平方根算法(附完整源码)
  4. 设计模式在Netty 中的应用-单例模式源码举例
  5. mysql语句 java变量_Java操作Mysql的方法
  6. python读取csv数据画直方图_用csv文件作为inpu在python中绘制直方图
  7. 当SQL Server爱上Linux:配置 SQL Server 2017 上的可用性组初体验
  8. 干得漂亮!签约“这辈子不可能打工”男子的经纪公司将被拉黑
  9. zabbix详解(五)——zabbix配置文件详解
  10. php下载地址转换工具,php把url转换迅雷thunder资源下载地址的简单示例
  11. 前后端分离之JWT(JSON Web Token)的使用
  12. 计算机录入技术五笔输入法教案,五笔打字教案
  13. 【MATLAB】MATLAB数值计算
  14. HSQL 中修改字段的语法
  15. 基于opencv的手势识别(HSV)控制鼠标
  16. 理财投资理念黄金法则
  17. 1123: [POI2008]BLO
  18. Flutter中的Provider(八)-多个Provider-MultiProvider
  19. MybatisPlus多表联查分页多条件查
  20. 单片机晶振概述及工作原理

热门文章

  1. 计算机绘画作品 星空,关于近期绘画作品《星空系列》的自述:
  2. 王道408数据结构——第三章 栈和队列
  3. redhat yum 安装 mysql_Redhat 7 下Mysql8.0.19安装配置图文详解(配合使用 centos YUM源)...
  4. 令人难忘的初吻描写......
  5. 2020中国十大最丑建筑出炉,你觉得哪个更丑?
  6. 真正的男人要勇于承担责任......
  7. 车窗上为啥总有一些小黑点?没想到居然藏着大作用!
  8. 18张难以置信的照片,封面这张你就没见过
  9. 史上最黑科技 | 人造肌肉、DNA折叠、柔性外骨骼…
  10. 每日一笑 | 程序员的日常,这也太真实了......