当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。

找到字符串中所有字母异位词

中等findAnagrams()
时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(n),空间 O(1)

找到字符串中所有字母异位词

给定两个字符串 s 和 p,找到 s 中所有 p 的字母异位词的子串,返回这些子串的起始下标。

字母异位词指字母相同但排列不同的字符串(含相同字母相同次数)。返回的下标按升序排列。

约定

  • 1 <= s.length, p.length <= 3 * 10^4
  • s 和 p 仅包含小写英文字母。

输入

  • s:主串
  • p:待匹配的模式串

输出

所有异位词子串的起始下标数组,按升序。

示例一

输入:

s = "cbaebabacd", p = "abc"

输出:

[0, 6]

解释:起始下标 0 的子串 "cba" 是 "abc" 的异位词;起始下标 6 的子串 "bac" 也是。

示例二

输入:

s = "abab", p = "ab"

输出:

[0, 1, 2]

复杂度要求

  • 时间复杂度:O(n),n 为 s 长度
  • 空间复杂度:O(1)(固定 26 大小计数数组)
Loading...

输入

["cbaebabacd","abc"]

预期输出

[0,6]
自定义用例