【Leetcode 每日一题】3298. 统计重新排列后包含另一个字符串的子字符串数目 II

ops/2025/1/12 2:38:25/

问题背景

给你两个字符串 w o r d 1 word_1 word1 w o r d 2 word_2 word2
如果一个字符串 x x x 重新排列后, w o r d 2 word_2 word2 是重排字符串的 前缀,那么我们称字符串 x x x合法的
请你返回 w o r d 1 word_1 word1合法 子字符串 的数目。
注意 ,这个问题中的内存限制比其他题目要 ,所以你 必须 实现一个线性复杂度的解法。

数据约束

  • 1 ≤ w o r d 1 . l e n g t h ≤ 1 0 6 1 \le word_1.length \le 10 ^ 6 1word1.length106
  • 1 ≤ w o r d 2 . l e n g t h ≤ 1 0 4 1 \le word_2.length \le 10 ^ 4 1word2.length104
  • w o r d 1 word_1 word1 w o r d 2 word_2 word2都只包含小写英文字母

解题过程

这题的关键在于能不能看出来实际上是在问 最小覆盖字串 的数量,如果能够意识到这一点,那就是一个标准的滑窗求符合要求的答案数量的题。

具体实现

class Solution {public long validSubstringCount(String word1, String word2) {char[] chW = word1.toCharArray();int n = chW.length;int[] diff = new int[26];int diffCount = 0;for(char c : word2.toCharArray()) {if(diff[c - 'a']++ == 0) {diffCount++;}}long res = 0;for(int left = 0, right = 0; right < n; right++) {if(--diff[chW[right] - 'a'] == 0) {diffCount--;}while(diffCount == 0) {res += n - right;if(diff[chW[left++] - 'a']++ == 0) {diffCount++;}}}return res;}
}

http://www.ppmy.cn/ops/149323.html

相关文章

如何确保获取的淘宝详情页数据的准确性和时效性?

要确保获取的淘宝详情页数据的准确性和时效性&#xff0c;可从以下几个方面着手&#xff1a; 合法合规获取数据 遵守平台规则&#xff1a;在获取淘宝详情页数据之前&#xff0c;务必仔细阅读并严格遵守淘宝平台的使用协议和相关规定。明确哪些数据可以获取、以何种方式获取以及…

maven中<dependencyManagement>与<dependencies>两个标签的区别

在 Maven 的 pom.xml 文件中&#xff0c;<dependencyManagement> 和 <dependencies> 是两个非常重要的标签&#xff0c;但它们的作用和使用场景不同。以下是它们的详细区别&#xff1a; 1. <dependencies> 标签 作用&#xff1a; 用于声明项目直接依赖的库&a…

2025年01月09日Github流行趋势

1. 项目名称&#xff1a;khoj 项目地址url&#xff1a;https://github.com/khoj-ai/khoj项目语言&#xff1a;Python历史star数&#xff1a;22750今日star数&#xff1a;1272项目维护者&#xff1a;debanjum, sabaimran, MythicalCow, aam-at, eltociear项目简介&#xff1a;你…

python:利用神经网络技术确定大量离散点中纵坐标可信度的最高集中区间

当我们有许多离散点并想要确定纵坐标在某个区间内的可信度时&#xff0c;我们可以使用神经网络模型来解决这个问题。下面是一个使用Python编写的示例代码&#xff0c;展示了如何使用神经网络来确定大量离散点中纵坐标可信度的最高集中区间。 import numpy as np from sklearn.…

Vue2:el-table中的文字根据内容改变颜色

想要实现的效果如图,【级别】和【P】列的颜色根据文字内容变化 1、正常创建表格 <template><el-table:data="tableData"style="width: 100%"><el-table-column prop="id" label="ID"/> <el-table-column …

错误的类文件: *** 类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中

一、问题 用maven对一个开源项目打包时&#xff0c;遇到了“错误的类文件: *** 类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中。”&#xff1a; 二、原因 原因是当前java环境是Java 8&#xff08;版本52.0&#xff09;&#xff0c;但…

【文件I/O】 总表和分表

在 Linux 系统中&#xff0c;文件操作中涉及的 总表 和 分表 是 文件描述符管理机制中 的两个重要概念。它们分别对应于 系统级别的文件表 和 进程级别的文件表。 总表&#xff08;系统文件表&#xff09; 总表 是 系统级别 的文件表&#xff0c;记录系统中所有打开文件的信息…

Ubuntu 24.04 LTS系统安装Docker踩的坑

一开始我跟着Docker给出的官网文档 Ubuntu | Docker Docs 流程走&#xff0c;倒腾了两个多小时&#xff0c;遇到了各种坑&#xff0c;最后放弃了。在我们使用脚本安装Docker命令前&#xff0c;我们先把已经安装的Docker全部卸载掉。 卸载Docker 1.删除docker及安装时自动安装…