type
status
date
slug
summary
tags
category
icon
password
创建时间
Apr 19, 2025 02:25 AM
给你两个字符串
word1
和 word2
。如果一个字符串
x
重新排列后,word2
是重排字符串的 前缀 ,那么我们称字符串 x
是 合法的 。请你返回
word1
中 合法 子字符串 的数目。注意 ,这个问题中的内存限制比其他题目要 小 ,所以你 必须 实现一个线性复杂度的解法。
求子数组个数——越长越合法
越长越合法:意味着,右窗口一旦固定,左窗口以左都是合法的。每次都需要加上左窗口的长度。
优化——将比较所有字母出现的数量,改变为比较出现次数小于
word2
中出现字母次数的字母数量。这么说有点拗口。也就是说我们原本需要每次都比较窗口中的每个字母出现的次数都至少不少于
word2
字符串中的每个字母出现的次数。现在通过变形,转变成窗口中不满足条件的字母数量(不用比较出现次数)。
也就是增加一个变量统计另一个指标,通过在滑动窗口中每次变动这个指标,进而快速得出判断的条件。
参考 灵茶山艾府