LeetCode 438. 找到字符串中所有字母异位词(滑动窗口)

1. 题目

给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。

字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。

说明:
字母异位词指字母相同,但排列不同的字符串。
不考虑答案输出的顺序。示例 1:
输入:
s: "cbaebabacd" p: "abc"
输出:
[0, 6]
解释:
起始索引等于 0 的子串是 "cba", 它是 "abc" 的字母异位词。
起始索引等于 6 的子串是 "bac", 它是 "abc" 的字母异位词。示例 2:
输入:
s: "abab" p: "ab"
输出:
[0, 1, 2]
解释:
起始索引等于 0 的子串是 "ab", 它是 "ab" 的字母异位词。
起始索引等于 1 的子串是 "ba", 它是 "ab" 的字母异位词。
起始索引等于 2 的子串是 "ab", 它是 "ab" 的字母异位词。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-all-anagrams-in-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 滑动窗口,对字符串进行计数,滑动一位更新计数,跟p的计数进行比较
class Solution {
public:vector<int> findAnagrams(string s, string p) {if(s.size() < p.size())return {};int pcount[26] = {0}, scount[26] = {0}, i, np = p.size();for(i = 0; i < np; ++i){pcount[p[i]-'a']++;scount[s[i]-'a']++;}vector<int> ans;if(eq(pcount, scount))ans.push_back(0);for(i = np; i < s.size(); ++i){scount[s[i]-'a']++;//窗口进来的scount[s[i-np]-'a']--;//出去的if(eq(pcount, scount))ans.push_back(i-np+1);}return ans;}bool eq(int *pc, int *sc){for(int i = 0; i < 26; ++i)if(pc[i] != sc[i])return false;return true;}
};

16 ms 8.6 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux CPU 信息查看

我们可以用/proc/cpuinfo 查看CPU 的信息。 该文件包含系统上每个处理器的数据段落。/proc/cpuinfo 描述中有 6 个条目适用于多内核和超线程&#xff08;HT&#xff09;技术检查&#xff1a;processor, vendor id, physical id, siblings, core id 和 cpu cores。 &#xff08;…

php 函数封装上传,PHP(多)文件上传实现和函数封装

一、PHP 文件上传的相关知识对 PHP 文件上传的相关知识总结主要是参考老师演示的代码和 drawer.php(某大神写的 PHP 单文件版的服务器文件管理端)1. php 关于文件上传的配置文件上传项目项在php.ini中设置,常用的配置项有:序号配置项默认值描述1file_uploadsOn使 PHP 支持文件上…

LeetCode 467. 环绕字符串中唯一的子字符串(思维转换)

1. 题目 把字符串 s 看作是“abcdefghijklmnopqrstuvwxyz”的无限环绕字符串&#xff0c;所以 s 看起来是这样的&#xff1a;"…zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd…". 现在我们有了另一个字符串 p 。 你需要的是找出 s 中有多少个唯一的…

Request.Params[CategoryID]

从页面的QueryString 、Form、Cookies、ServerVariables 里检索名称为“CategoryID”的值。优先级顺序为QueryString > Form > Cookies > ServerVariables转载于:https://www.cnblogs.com/wangzhexiaoyan/archive/2010/11/03/1868567.html

matlab记录路径,matlab对文件目录路径的操作

1、 filesep用于返回当前平台的目录分隔符&#xff0c;Windows是反斜杠(\)&#xff0c;Linux是斜杠(/)。2、 fullfile用于将若干字符串连接成一个完整的路径。例如&#xff1a;>> ffullfile(D:,Matlab,example.txt)fD:\Matlab\example.txt(在Windows中&…

LeetCode 457. 环形数组循环(暴力+快慢指针)

文章目录1. 题目2. 解题2.1 暴力解题2.2 快慢指针1. 题目 给定一个含有正整数和负整数的环形数组 nums。 如果某个索引中的数 k 为正数&#xff0c;则向前移动 k 个索引。相反&#xff0c;如果是负数 (-k)&#xff0c;则向后移动 k 个索引。 因为数组是环形的&#xff0c;所以…

SQLite外键

SQLite外键(Foreign Key)支持 从SQLite 3.6.19 开始支持 外键约束. (Ubuntu 10.04 的SQLite版本是 3.6.22, Debian 6.0 的SQLite版本是 3.7.0) 外键约束用来强制 两个表之间”存在”的关系. 比如, 考虑下面的SQL命令建立的schema CREATE TABLE artist(artistid INTEGER PRIMA…

帝国cms搜索php分页,帝国cms V7.2自定义分页(列表分页,内容分页)样式步骤

【1】自己修改帝国cms默认的分页样式(css)&#xff0c;这样做的好处是你不用去改动帝国的核心文件&#xff0c;方便以后升级。【2】自己动手去修改帝国的分页(phpcss)&#xff0c;帝国的分页在e>class>下的t_functions.php这个文件里。列表页模板[!--show.page--]:分页导…

LeetCode 435. 无重叠区间(贪心/动态规划)

文章目录1. 题目2. 解题2.1 贪心2.2 动态规划1. 题目 给定一个区间的集合&#xff0c;找到需要移除区间的最小数量&#xff0c;使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”&#xff0c;但没有相互重叠。 示例…

UDP广播包的研究

一直以来听的多了&#xff0c;什么UDP广播之类的&#xff0c;不过自己一直没有试验过&#xff0c;这次闲来无聊&#xff0c;于是测试了一下。网上说的其实并不是非常的正确&#xff0c;流传着不少的错误言论&#xff0c;这次自己动手测试了一下&#xff0c;没想到比我想象中的还…

php传递字符串给python,用PHP和Python生成短链接服务的字符串ID

假设你想做一个像微博短链接那样的短链接服务&#xff0c;短链接服务生成的URL都非常短例如: http://t.cn/E70Piib, 我们应该都能想到链接中的E70Piib对应的就是存储长链接地址的数据记录的ID&#xff0c;可是这个有大小写字母和数字构成的唯一ID是怎么生成的呢&#xff0c;刚学…

LeetCode 433. 最小基因变化(广度优先搜索)

1. 题目 一条基因序列由一个带有8个字符的字符串表示&#xff0c;其中每个字符都属于 “A”, “C”, “G”, "T"中的任意一个。 假设我们要调查一个基因序列的变化。一次基因变化意味着这个基因序列中的一个字符发生了变化。 例如&#xff0c;基因序列由"AAC…

JCP执行委员会新成员选举结果揭晓:Hologic未获通过

转载于:https://www.cnblogs.com/mixer/archive/2010/11/09/2448777.html

matlab fig生成exe,MATLAB GUI多个m文件和fig如何生成exe文件

&#xff0b;文件。命令的格式为&#xff1a;mcc[-option]fun[fun2...][mexfile1.....&#xff0b;文件。命令的格式为&#xff1a;mcc[-option]fun[fun2...][mexfile1.....function start_Callback(hObject, eventdata, handle...你的意思是&#xff1a;多个m文件导成一个吗&a…

Eclipse 编写代码自动提示设置

很多人不知道Eclipse如何开启代码助手的自动提示功能&#xff0c;只是使用Eclipse默认的输入了“.”之后才会出现提示。实际上可以输入任何字符的时候都可以给出提示。 设置如下: 打开 Eclipse -> Window -> Perferences&#xff0c;会打开个Perferences 的设置界面。 打…

LeetCode 436. 寻找右区间(二分查找)

1. 题目 给定一组区间&#xff0c;对于每一个区间 i&#xff0c;检查是否存在一个区间 j&#xff0c;它的起始点大于或等于区间 i 的终点&#xff0c;这可以称为 j 在 i 的“右侧”。 对于任何区间&#xff0c;你需要存储的满足条件的区间 j 的最小索引&#xff0c;这意味着区…

老鼠走迷宫php算法,C语言经典算法 - 老鼠走迷官(一)

C语言经典算法 - 老鼠走迷官(一)说明老鼠走迷宫是递回求解的基本题型&#xff0c;我们在二维阵列中使用2表示迷宫墙壁&#xff0c;使用1来表示老鼠的行走路径&#xff0c;试以程式求出由入口至出口的路径。解法老鼠的走法有上、左、下、右四个方向&#xff0c;在每前进一格之后…

LeetCode 491. 递增子序列(回溯+判重剪枝)

1. 题目 给定一个整型数组, 你的任务是找到所有该数组的递增子序列&#xff0c;递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7] 输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]说明: 给定数组的长度不会超过15。 数组中的整数范…

[网络收集]Web.config配置文件详解

摘录自&#xff1a;http://hi.baidu.com/fanfanwuji/blog/item/a7fd8928d49a7ef098250a06.html 花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法。很适合新手参看&#xff0c;由于Web.config在使用很灵活&#xff0c;可以自定义一些节点。所以这里只介绍一些比较…

python怎么写方程条件,条件方程曲线拟合

在xmin处多项式的导数0的条件可以表示为一个简单的约束&#xff0c;这意味着变量p2&#xff0c;p3&#xff0c;和{}实际上并不独立。衍生条件是p2 2*p3*xmin 3*p4*xmin**2 0其中xmin是xdata的最小值。此外&#xff0c;xmin将在fit之前知道(如果不一定是在编写脚本时)&#x…