【LeetCode】【HOT】438. 找到字符串中所有字母异位词(滑动窗口)
【LeetCode】【HOT】438. 找到字符串中所有字母异位词
文章目录
- 【LeetCode】【HOT】438. 找到字符串中所有字母异位词
package hot;import java.util.ArrayList;
import java.util.List;public class Solution438 {public static void main(String[] args) {String s = "cbaebabacd";String p = "abc";Solution438 solution = new Solution438();System.out.println(solution.method(s, p));}private List<Integer> method(String s, String p){int n = s.length();int m = p.length();List<Integer> res = new ArrayList<>();int[] cnt = new int[26];for(int i = 0; i < m; i++){cnt[p.charAt(i) - 'a']++;}int a = 0;for(int i : cnt){a += i == 0 ? 0 : 1;}for(int l = 0, r = 0, b = 0; r < n; r++){if(--cnt[s.charAt(r) - 'a'] == 0) b++;if(r - l + 1 > m && ++cnt[s.charAt(l++) - 'a'] == 1) b--;if(b == a) res.add(l);}return res;}
}//时间复杂度为 O(n)
//空间复杂度为 O(1)
【LeetCode】【HOT】438. 找到字符串中所有字母异位词(滑动窗口)相关推荐
- Java实现 LeetCode 438 找到字符串中所有字母异位词
438. 找到字符串中所有字母异位词 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p ...
- 438. 找到字符串中所有字母异位词【我亦无他唯手熟尔】
438. 找到字符串中所有字母异位词 438. 找到字符串中所有字母异位词 题解 官方 438. 找到字符串中所有字母异位词 难度 中等 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 ...
- 438. 找到字符串中所有字母异位词【异位词-哈希数组】
438. 找到字符串中所有字母异位词 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引.不考虑答案输出的顺序. 异位词 指由相同字母重排列形成的字符串(包括 ...
- LeetCode 438. 找到字符串中所有字母异位词(滑动窗口)
1. 题目 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100 ...
- LeetCode 438. 找到字符串中所有字母异位词(双指针+滑动窗口)
题目描述 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100. ...
- leetcode刷题(91)——438. 找到字符串中所有字母异位词
给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100. 说明: ...
- leetcode 438. Find All Anagrams in a String | 438. 找到字符串中所有字母异位词(Java)
题目 https://leetcode.com/problems/find-all-anagrams-in-a-string/ 题解 方法1:尝试构造一种"与顺序无关的哈希" 思考 ...
- LeetCode:438. 找到字符串中所有字母异位词(简单易懂)
一.题目描述: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引.不考虑答案输出的顺序. 异位词 指由相同字母重排列形成的字符串(包括相同的字符串). 示例 ...
- 【LeetCode笔记】438. 找到字符串中所有字母异位词(Java、字符串、滑动窗口)
题目描述 因为自己写的复杂度已经到了 O(n),就没有再参考题解的优化了 更新:滑动窗口方法 思路 & 代码 用一个 int[ ] count 来存储当前判断子串的各字母出现次数 getCou ...
最新文章
- STL容器迭代过程中删除元素技巧
- java ios websocket_Java WebSocket的例子
- 机器学习中有监督学习——回归
- 满天星_Java实例_源码+图片素材
- 【收藏】Zeppelin与Linkis、Scriptis的实践对比
- GradSearchCv 自定义验证集
- 使用代理下载Unity AssetStore上资源的方法
- 程序媛记一次在线创建索引被kill案例及应对措施
- 乐视网回击贾跃亭:债务处理没有进展,先拿出57亿再说
- java resouce_Java 获取Resource目录下的文件解决办法
- iOS开发UI篇—简单的浏览器查看程序
- 微信小程序--图片Image几种mode 设置图片方法
- AI音箱工作原理浅析
- VMware Workstation 虚拟机下载及安装的详细步骤
- HTML 动态背景
- BATCH 批处理(一)
- 一张图理解EOS是什么
- 【电脑使用技巧】1TB的硬盘只有931G 硬盘容量去哪儿了?
- (11)RabbitMQ的mandatory、immediate和ReturnListener
- 十二时辰与时间对照表,十二经络时辰表