思路:KMP实现虽然效率高,但较为复杂;
这里索性直接hash,注意int溢出,一定要取余

int strStr(string haystack, string needle)
{int len1 = haystack.length();int len2 = needle.length();if (len2 == 0)return 0;if (len1 < len2)return -1;vector<int> res;for (int i = 0; i <= len1 - len2; i++){long hash = 0;int iCopy = i;for (int k = 0; k < len2; k++){hash = hash * 27 + haystack[iCopy++] - 'a';if (hash > INT_MAX)hash = hash % INT_MAX;}res.push_back(hash);}long hashNeedle = 0;for (int k = 0; k < len2; k++){hashNeedle = hashNeedle * 27 + needle[k] - 'a';if (hashNeedle > INT_MAX)hashNeedle = hashNeedle % INT_MAX;}for (int i = 0; i < res.size(); i++){if (res[i] == hashNeedle)return i;}return -1;
}

Leetcode每日一题:28.implement-strstr(实现strStr())相关推荐

  1. leetcode python3 简单题28. Implement strStr()

    1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第二十八题 (1)题目 英文: Implement strStr(). Return ...

  2. LeetCode每日一题(28. Find the Index of the First Occurrence in a String)

    Given two strings needle and haystack, return the index of the first occurrence of needle in haystac ...

  3. leetcode每日刷题计划-简单篇day8

    leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...

  4. Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)

    思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...

  5. 【LeetCode每日一题】1723. 完成所有工作的最短时间

    [LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...

  6. leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

    leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...

  7. LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色

    LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...

  8. 【LeetCode每日一题】——109.有序链表转换二叉搜索树

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...

  9. leetcode每日一题·救生艇问题(Python)

    leetcode每日一题·救生艇问题(Python) 问题描述 题目入口 题目思路 首先分析问题,一个船最多坐两人,因此我们可以把这个问题看作两两组合的问题,并且如果最重的那个人和最轻的人加起来大于l ...

最新文章

  1. 关于epel源的配置
  2. Linux内核学习笔记十一——I/O层和I/O调度机制
  3. js中 replace(/\//g, '') 什么作用. 正则表达式
  4. Linux环境下USB的原理、驱动和配置
  5. 用javah 导出类的头文件, 常见的错误及正确的使用方法
  6. koa --- [MVC实现之二]Controller层的实现
  7. 系统架构师5 ***********那就给个合格分了。111
  8. layuimini 图标颜色便捷指定
  9. 华为P50 Pro/Pro+更多细节曝光:6.7寸120Hz单孔屏 比前作更轻薄
  10. weblogic故障报错
  11. 异常处理2:异常处理方式、问区别的面试题汇总
  12. Atitit.你这些项目不都是模板吗?不是原创  集成和整合的方式大总结
  13. 雷军:《硅谷之火》给了我一个世界级的梦想
  14. 【重点】commons-dbutils
  15. Linux 下du命令详解及代码实现
  16. OffiSmart Summit智慧办公及空间管理上海线下峰会精彩亮点抢先看
  17. DD-路径图、MM-路径图的定义与区别联系
  18. 解决webstorm调试js时Evaluate脚本获取dom属性丢失问题
  19. python计算abcd*4=dcba_abcd乘以4等于dcba的解答方法
  20. 33:判断字符串是否为回文

热门文章

  1. eclipse-注释
  2. P4113 [HEOI2012]采花
  3. 网络通信协议八之UDP协议详解
  4. HOUR 4 Expressions, Statements, and Operators
  5. MFC sendmessage实现进程间通信
  6. ElasticSearch中的简单查询
  7. Unsupported major.minor version 51.0
  8. ubuntu命令查询版本和内核版本
  9. Cocos2d API 解析之Texture2d
  10. 一个 ARK工具: XueTr类似ICEWORLD