首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

题目 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。...说明: 字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。...起始索引等于 6 的子串是 "bac", 它是 "abc" 的字母异位词。...起始索引等于 1 的子串是 "ba", 它是 "ab" 的字母异位词。 起始索引等于 2 的子串是 "ab", 它是 "ab" 的字母异位词。...解题 滑动窗口,对字符串进行计数,滑动一位更新计数,跟p的计数进行比较 class Solution { public: vector findAnagrams(string s, string

68910

【优选算法】滑动窗口——leetcode——438.找到字符串中所有字母异位词

找到字符串中所有字母异位词 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。...异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。...滑动窗口 利用滑动窗口+哈希表解决问题 可以⽤两个⼤⼩为 26 的数组来模拟哈希表,⼀个来保存 s 中的⼦串每个字符出现的个 数,另⼀个来保存 p 中每⼀个字符出现的个数。...更新结果: 如果 count 等于 m,说明当前窗口是一个字母异位词,记录起始索引 left。...实现:使用大小为 26 的数组来记录每个小写字母的出现次数,数组索引对应字母的偏移量(例如 'a' 对应索引 0,'b' 对应索引 1)。

8110

漫画:滑动窗口系列 第三讲(找到字符串中所有字母异位词)

之前的两节讲解了滑动窗口类问题的模式解法,相信大家对该类题型已不陌生。今天将继续完成一道题目,来进行巩固学习。 01 第438....找到字符串中所有字母异位词 第438题:给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。...字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。 说明: 字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。...02 题解分析 直接套用之前的模式,使用双指针来模拟一个滑动窗口进行解题。...而判断字母异位词,我们需要保证窗口中的字母出现次数与目标串中的字母出现次数一致。这里因为字母只有26个,直接使用数组来替代map进行存储(和上一讲中的ASCII使用256数组存储思想一致)。

39720

统计文本中单字母、双字母、三字母的频率

2 问题描述 如何统计文本中单字母、双字母、三字母的频率,考虑单词之间的空格和符号。...3 算法思路 对于统计单字母、双字母、三字母的出现频率: (1)将文本中单词提取出来(遍历输入的文本,判断当前遍历到的元素是否为字母,若为字母则继续遍历,若不为字母就以此为断点分割出单词)。...注意:在遍历输入的文本时,为保证可以得到所有的单词需要在输入的文本最后加上一个非字母的符号(防止文章最后没有标点符号导致最后一个单词没有被分割出来)。...(2)在遍历输入文本的同时,统计分割出的所有单词数(计算频率时使用),判断该单词是否为单字母、双字母、三字母单词,若是则相应的变量值加1。...---- 代码清单 统计文本中单字母、双字母、三字母的频率 # 输入文本 str1 = input() # 和flag和循环中的i组成双指针 flag = 0 # 统计各种单词的数量,用于计算比例 all_word

1.3K30
领券