字符串
华佗难治我骚
这个作者很懒,什么都没留下…
展开
-
KMP详解
KMP 算法详解背景:一开始的时候我们比较一个字符串是不是另一个字符串的子串的时候,最原始的做法就是用子串一个一个去比较。比较到不相等的位置的时候,母字符串后退一步,子字符串重新开始。这样子做会出现一个不必要的比较。解决方式:KMP,KMP能够解决上面所出现的问题。我们回去计算一个next数组的值,其目的在于解决当两个字符不匹配的时候,子串应该从哪里开始继续和母字符串作比较。首先介绍一下next的计算方式:规则:当前位置的值,等于之前子串里面最大重复子串的大小+1。void get_next原创 2020-12-20 13:13:06 · 147 阅读 · 1 评论 -
剑指 Offer 48. 最长不含重复字符的子字符串
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"是...原创 2020-07-07 22:40:12 · 75 阅读 · 0 评论 -
力扣 1016. 子串能表示从 1 到 N 数字的二进制串
1016. 子串能表示从 1 到 N 数字的二进制串难度中等19收藏分享切换为英文关注反馈给定一个二进制字符串S(一个仅由若干'0' 和 '1' 构成的字符串)和一个正整数N,如果对于从1到N的每个整数X,其二进制表示都是S的子串,就返回true,否则返回false。示例 1:输入:S = "0110", N = 3输出:true示例 2:输入:S = "0110", N = 4输出:false提示:1 <= S.leng...原创 2020-05-25 14:55:31 · 197 阅读 · 0 评论 -
力扣 539. 最小时间差
539. 最小时间差难度中等45收藏分享切换为英文关注反馈给定一个 24 小时制(小时:分钟)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。示例 1:输入: ["23:59","00:00"]输出: 1备注:列表中时间数在 2~20000 之间。 每个时间取值在 00:00~23:59 之间。思路很简单:每个字符串得分钟数算一下,拍一下序列。在两者之间减一下,求最小。同时记住时间是循环得,所以随后一个何第一个也要比较一下。class Solution原创 2020-05-24 18:34:53 · 185 阅读 · 1 评论 -
力扣 44. 通配符匹配
44. 通配符匹配难度困难336收藏分享切换为英文关注反馈给定一个字符串(s) 和一个字符模式(p) ,实现一个支持'?'和'*'的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s可能为空,且只包含从a-z的小写字母。 p可能为空,且只包含从a-z的小写字母,以及字符?和*。示例1:输入:s = "aa"p = "a"输出: false解释: "a" ...原创 2020-05-13 23:23:33 · 167 阅读 · 0 评论 -
leetcode 30. 串联所有单词的子串
30. 串联所有单词的子串难度困难257收藏分享切换为英文关注反馈给定一个字符串s和一些长度相同的单词words。找出s中恰好可以由words中所有单词串联形成的子串的起始位置。注意子串要与words中的单词完全匹配,中间不能有其他字符,但不需要考虑words中单词串联的顺序。示例 1:输入: s = "barfoothefoobarman",...原创 2020-05-04 23:02:38 · 117 阅读 · 0 评论 -
力扣 43. 字符串相乘
给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1和num2的长度小于110。num1 和num2 只包含...原创 2020-04-22 14:34:53 · 174 阅读 · 0 评论