本题是一个滑动窗口问题,要求找出所有 p 的异位词(即字符相同但顺序不同的子串)在 s 中的起始索引。
由于 p 的所有异位词长度固定为 len(p),可以使用固定大小的滑动窗口遍历 s。
p 的字符计数 p_count(字典或数组)。s 的窗口 s_count,长度等于 p,表示当前窗口中的字符频率。给定两个字符串 s和 p,找到s中所有 p的异位词的子串,输出这些子串的起始索引。不考虑答案输出的顺序。
输入共两行。
第一行为字符串s
第二行为字符串p
输出为一行,包含所有满足条件的子串的起始索引,索引之间用空格分隔。索引的顺序可以是任意的,但必须包含所有符合条件的索引。
输入
cbaebabacd
abc
输出
0 6
说明
起始索引等于 0的子串是 "cba", 它是 "abc" 的异位词。 起始索引等于 6的子串是 "bac", 它是 "abc" 的异位词。
输入
abab
ab
输出
0 1 2
说明
起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。
起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。
起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。