当前位置: 首页 > news >正文

LeetCode 3298.统计重新排列后包含另一个字符串的子字符串数目2

给你两个字符串 word1 和 word2 。

如果一个字符串 x 重新排列后,word2 是重排字符串的 前缀 ,那么我们称字符串 x 是 合法的 。

请你返回 word1 中 合法 子字符串 的数目。

注意 ,这个问题中的内存限制比其他题目要 小 ,所以你 必须 实现一个线性复杂度的解法。

示例 1:

输入:word1 = “bcca”, word2 = “abc”

输出:1

解释:

唯一合法的子字符串是 “bcca” ,可以重新排列得到 “abcc” ,“abc” 是它的前缀。

示例 2:

输入:word1 = “abcabc”, word2 = “abc”

输出:10

解释:

除了长度为 1 和 2 的所有子字符串都是合法的。

示例 3:

输入:word1 = “abcabc”, word2 = “aaabc”

输出:0

解释:

1 <= word1.length <= 10 6 ^6 6
1 <= word2.length <= 10 4 ^4 4
word1 和 word2 都只包含小写英文字母。

滑动窗口,当窗口内的字符符合题意时,加上窗口左边的字符也符合题意:

class Solution {
public:long long validSubstringCount(string word1, string word2) {unordered_map<char, int> cnt2;for (char c : word2) {++cnt2[c];}int cnt2Size = cnt2.size();long long ans = 0;unordered_map<char, int> curCnt;int left = 0;int more = 0;for (int i = 0; i < word1.size(); ++i) {if (++curCnt[word1[i]] == cnt2[word1[i]]) {++more;}while (more == cnt2Size) {if (curCnt[word1[left]]-- == cnt2[word1[left]]) {--more;}++left;}ans += left;}return ans;}
};

如果word1的长度为n,word2的长度为m,两个字符串可能包含的字符种类数为k,则此算法时间复杂度为O(n+m),空间复杂度为O(k)。

http://www.lryc.cn/news/575112.html

相关文章:

  • ivx创建一个测试小案例
  • Vue3插槽
  • 基于springboot+vue的智慧农业专家远程指导系统
  • 批量DWG转PDF工具
  • ES和 Kafka 集群搭建过程中的典型问题、配置规范及最佳实践
  • RK平台HDMI-IN/camera调试:预留CMA内存
  • Mac安装Apache CXF的时候报错:/Library/Internet: No such file or directory
  • 打造属于你的AI智能体,从数据开始 —— 使用 Bright Data MCP+Trae快速构建垂直智能体
  • 操作系统之内存管理(王道)
  • Azure 自动化:所需状态配置 (DSC)
  • UniApp 开发第一个项目
  • Python虚拟环境管理:conda、venv、pipenv三国杀
  • JSON框架转化isSuccess()为sucess字段
  • Fisco Bcos学习 - 开发第一个区块链应用
  • PAC 学习框架:机器学习的可靠性工程
  • 通俗易懂解读BPE分词算法实现
  • 回归预测 | Matlab实现KAN神经网络多输入单输出回归预测模型
  • 轻巧灵动,智启未来 ——Kinova Gen3 Lite 机器人轻松解锁各行业自动化新姿势
  • 领域驱动设计(DDD)【13】之重构中的坏味道:深入理解依恋特性(Feature Envy)与表意接口模式
  • 香港电讯携手Palo Alto Networks,护航企业跨区域数字化之旅
  • 第8章项目进度管理归纳总结补充
  • 英飞凌高性能BMS解决方案助力汽车电动化
  • python学智能算法(十六)|机器学习支持向量机简单示例
  • 基于MATLAB图像特征识别及提取实现图像分类
  • spring event(spring事件)
  • 从 HLS 到 Verilog 的转变解析1:以 AXI 接口为例
  • 云原生灰度方案对比:服务网格灰度(Istio ) 与 K8s Ingress 灰度(Nginx Ingress )
  • jenkins 越用越卡,打开网页缓慢
  • CLion 调试时 Command Timed Out 问题解决方案
  • 深入剖析 Spring AOP