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

news/2025/1/9 18:59:21/文章来源:https://www.cnblogs.com/yanjianjiang/p/18662759

 

3297. 统计重新排列后包含另一个字符串的子字符串数目 I
提示

给你两个字符串 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 <= 105
  • 1 <= word2.length <= 104
  • word1 和 word2 都只包含小写英文字母。

 

/*** @param {string} word1* @param {string} word2* @return {number}*/
var validSubstringCount = function (word1, word2) {const diff = new Array(26).fill(0);const aNum = 'a'.charCodeAt(0);for (const c of word2) {diff[c.charCodeAt(0) - aNum]--;}let res = 0;let cnt = diff.filter(c => c < 0).length;const update = (c, add) => {diff[c] += add;if (add === 1 && diff[c] === 0) {cnt--;} else if (add === -1 && diff[c] === -1) {cnt++;}}let l = 0, r = 0;let n = word1.length;while (l < n) {while (r < n && cnt > 0) {update(word1.charCodeAt(r) - aNum, 1);r++;}if (cnt === 0) {res += n - r + 1;}update(word1.charCodeAt(l) - aNum, -1);l++;}return res;
};

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/866676.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTPS 加密机制

HTTPS 概述 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。…

leetcode131 分割回文串

leetcode 131思路:回溯 比如说aab,对于每个元素currentNum,有两种选择: 1.如果currentNum<len-1,可以将当前元素加入到currentStr中,然后dfs(start,currentNum+1)。而currentNum==len-1时不能dfs(start,currentNum+1),这样下一轮循环就执行以下代码了 if (currentNum…

Fake Location强制升级解决办法

Fake Location强制升级解决办法 一、下载链接中的软件并安装其中的APK https://www.123865.com/s/TXeiTd-fla7d 二、进入LSPosed软件,点击应用伪装三、勾选Fake Location四、进入应用伪装软件并点击Fake Location五、往下滑,找到应用版本号,并填写为1599, 然后点击右上角的…

【分布式】优雅实现多系统一致性补偿方案

前言 我们在开发的过程中,如果一个业务操作需要本地写MYSQL数据以及对第三方系统做写操作,那么这种流程就涉及到分布式系统一致性的问题,然而并非所有系统都能使用成熟的分布式事务方案 案例说明 以一个财务报账业务为例,涉及到的系统如下:系统名 作用 实现方案单据系统 申…

【ABAP】S4中的官方demo程序

1. abap demo包含cds、opensql、loop at group 等开发对象及语法的demo程序 包名:SABAPDEMOS 2. salv demo主要是一些salv开发相关的demo,包含树状显示、弹窗显示等包名:SALV_OM_OBJECTS

使用云数据库RDS和低代码开发平台“魔笔”,高效构建门户网站,完成任务领智能台灯!

传统建站涵盖需求分析、设计、开发、运维等环节。需分析软硬件需求并购买配置,设计网页布局,前后端编码调试,涉及业务逻辑、数据库及API。更新时需调整设计与代码。运营期需进行服务器维护、数据监控和安全检查,整个过程耗资费力。 本方案将为您详细介绍如何使用云数据库RD…

salesforce零基础学习(一百四十二)在Formula字段中如何通过Datetime字段显示Local Time(适配DST)

背景: 我们需求是显示Date Time类型的Time信息,比如我们想要在report中基于Hour Of Created Date进行分组,从而想要了解到一段时间内什么时间是数据创建的高峰期,不同的running user可能时区不同,比如中国时区是GMT+8,日本的时区是GMT+9,美国可能不同的州对应的时区也不…

官宣!通义灵码 AI 程序员全面上线

通义灵码2.0 你的AI程序员来了!速来领取你的全新魔法搭档吧! 通义灵码AI程序员成为全球首个同时支持 VS Code、JetBrains IDEs 开发工具的AI程序员产品。此次上线的AI程序员相比传统AI辅助编程工具,能力更全面,可以让开发者以更高效、更沉浸的方式完成编码任务,通过全程对…

htb Escape

扫描端口 nmap -sC -sV -p- -v -Pn -T4 10.10.11.202 Host is up (0.39s latency). Not shown: 65515 filtered tcp ports (no-response) PORT STATE SERVICE VERSION 53/tcp open domain Simple DNS Plus 88/tcp open kerberos-sec Microsoft Wind…

2025年销售攻略

随着2024年的落幕,我们迎来了全新的2025年,新一轮的业绩争夺战已经悄然打响。面对新的挑战与机遇,我们该如何在销售领域脱颖而出,实现业绩的稳步增长呢? 一、明确目标,勇往直前 销售工作离不开明确的目标。设定清晰、可行的销售目标,并将其分解为具体的时间节点和任务,…

杭州铭师堂的云原生升级实践

杭州铭师堂,是一个致力于为人的全面发展而服务的在线教育品牌。杭州铭师堂秉持“用互联网改变教育,让中国人都有好书读”的使命,致力于用“互联网+教育”的科技手段让更多的孩子都能享有优质的教育,促进他们的全面成长。作者:升学e网通研发部基建团队 公司介绍 杭州铭师堂…

新年餐饮业营销攻略:数据驱动,精准营销!

餐饮业借助项目管理软件开展新年营销,可以更加高效、精准地管理营销活动,提升销售业绩和用户体验。通过选择合适的软件工具、制定详细的营销计划、设置可视化的任务列表和进度跟踪、促进团队协作和沟通、收集和分析数据以优化营销策略、评估和调整项目计划以及总结经验和教训…