LeetCode Hot100 438.找到字符串中所有字母异位词

题目

给定两个字符串 sp,找到 s中所有 p异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。

异位词指由相同字母重排列形成的字符串(包括相同的字符串)。

代码

java 复制代码
class Solution {
    public List<Integer> findAnagrams(String s, String p) {
        int n = s.length(), m = p.length();
        List<Integer> res = new ArrayList<>();
        if (n < m)
            return res;
        int[] pCnt = new int[26];
        int[] sCnt = new int[26];
        for (int i = 0; i < m; i++) {
            pCnt[p.charAt(i) - 'a']++;
            sCnt[s.charAt(i) - 'a']++;
        }
        if (Arrays.equals(sCnt, pCnt)) {
            res.add(0);
        }
        for (int i = m; i < n; i++) {
            sCnt[s.charAt(i - m) - 'a']--;
            sCnt[s.charAt(i) - 'a']++;
            if(Arrays.equals(sCnt, pCnt)){
                res.add(i - m + 1);
            }
        }
        return res;
    }
}
相关推荐
测试199816 小时前
Jmeter是如何实现接口关联的?
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·接口测试
CoderYanger16 小时前
前端基础——HTML练习项目:填写简历信息
前端·css·职场和发展·html
学学学无无止境16 小时前
力扣-上升的温度
leetcode
云青黛16 小时前
轮廓系数(一个异型簇的分类标准)
人工智能·算法·机器学习
云青黛16 小时前
肘部法找k
人工智能·算法·机器学习·聚类
CHANG_THE_WORLD16 小时前
if条件语句 三目运算符 汇编分析
汇编·算法·条件语句·if 语句·汇编分析·条件语句汇编分析
tumu_C16 小时前
无用知识研究:在trailing return type利用decltype,comma operator在对函数进行sfinae原创 [二]
开发语言·c++·算法
ProcessOn官方账号16 小时前
深度解析产品运营的多元策略
程序人生·职场和发展·产品运营
web安全工具库16 小时前
告别刀耕火种:用 Makefile 自动化 C 语言项目编译
linux·运维·c语言·开发语言·数据库·算法·自动化
海蓝可知天湛17 小时前
利用Genspark自定义智能体:算法竞赛测试数据反推与生成工具
算法·aigc