LeetCode 2825.循环增长使字符串子序列等于另一个字符串

给你一个下标从 0 开始的字符串 str1 和 str2 。

一次操作中,你选择 str1 中的若干下标。对于选中的每一个下标 i ,你将 str1[i] 循环 递增,变成下一个字符。也就是说 ‘a’ 变成 ‘b’ ,‘b’ 变成 ‘c’ ,以此类推,‘z’ 变成 ‘a’ 。

如果执行以上操作 至多一次 ,可以让 str2 成为 str1 的子序列,请你返回 true ,否则返回 false 。

注意:一个字符串的子序列指的是从原字符串中删除一些(可以一个字符也不删)字符后,剩下字符按照原本先后顺序组成的新字符串。

示例 1:

输入:str1 = “abc”, str2 = “ad”
输出:true
解释:选择 str1 中的下标 2 。
将 str1[2] 循环递增,得到 ‘d’ 。
因此,str1 变成 “abd” 且 str2 现在是一个子序列。所以返回 true 。
示例 2:

输入:str1 = “zc”, str2 = “ad”
输出:true
解释:选择 str1 中的下标 0 和 1 。
将 str1[0] 循环递增得到 ‘a’ 。
将 str1[1] 循环递增得到 ‘d’ 。
因此,str1 变成 “ad” 且 str2 现在是一个子序列。所以返回 true 。
示例 3:

输入:str1 = “ab”, str2 = “d”
输出:false
解释:这个例子中,没法在执行一次操作的前提下,将 str2 变为 str1 的子序列。
所以返回 false 。

提示:

1 <= str1.length <= 105^55
1 <= str2.length <= 105^55
str1 和 str2 只包含小写英文字母。

双序列双指针,看两指针指向的字符是否相同,或是否可以通过循环增长变为另一个字符,如果否,则跳过str1中字符,看最后str2中的字符是否都遍历完:

class Solution {
public:bool canMakeSubsequence(string str1, string str2) {int idx1 = 0;int idx2 = 0;while (idx1 < str1.size() && idx2 < str2.size()) {if (str1[idx1] == str2[idx2] || char('a' + (str1[idx1] - 'a' + 1) % 26) == str2[idx2]) {++idx2;}++idx1;}return idx2 == str2.size();}
};

如果str1的长度为n,则此算法时间复杂度为O(n),空间复杂度为O(1)。

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

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

相关文章

【无人机】1.编译betaflight和cleanflight的固件

在2023年&#xff0c;betaflight腾飞&#xff0c;而cleanflight已经结束更新&#xff0c;但是用cleanflight的原因是因为他最后版本支持stm32f103系列。不用betaflight因为手头还没有f405和f411&#xff0c;只有一个不支持的f407和f401&#xff0c;所以。。接下来开始步骤&…

刻意练习理论

刻意练习理论 一、理论概述 刻意练习&#xff08;Deliberate Practice&#xff09;是由心理学家安德斯艾利克森&#xff08;Anders Ericsson&#xff09;提出的一种系统化学习方法&#xff0c;核心观点是卓越并非源于天赋&#xff0c;而是通过针对性训练获得。其理论基础来自对…

【FastDDS】Layer DDS之Domain ( 04-DomainParticipantFactory)

Fast DDS 域参与者工厂&#xff08;DomainParticipantFactory&#xff09;详解 一、域参与者工厂&#xff08;DomainParticipantFactory&#xff09;基础定义 域参与者工厂&#xff08;DomainParticipantFactory&#xff09;的唯一作用是实现域参与者&#xff08;DomainPartici…

树莓集团建数字产业学院:产教融合强化成渝人才链与产业链衔接

成渝地区双城经济圈建设是国家重大发展战略&#xff0c;而人才链与产业链的有效衔接&#xff0c;是推动成渝地区产业高质量发展的关键。树莓集团顺应时代发展需求&#xff0c;搭建数字产业学院&#xff0c;以产教融合为纽带&#xff0c;不断强化成渝人才链与产业链的衔接&#…

在 ASP.NET 8 WebAPI 中使用不同的提供程序验证多个令牌(Token)及常见问题解答

介绍作为 ASP.NET 框架的最新版本&#xff0c;ASP.NET 8提供了强大的功能&#xff0c;可用于构建安全且可扩展的 Web API。API 开发的一个关键方面是身份验证&#xff0c;它确保只有授权用户或服务才能访问受保护的资源。在本文中&#xff0c;我们将探讨如何在 ASP.NET 8 API 中…

工业相机为啥丢包?黑条 / 撕裂的原因 + 解决办法,一看就懂

工业相机为啥丢包&#xff1f;黑条/撕裂的原因解决办法&#xff0c;一看就懂 工业相机拍图时出现黑条、撕裂、花屏&#xff0c;别急着换设备——大概率是“数据丢包”在搞鬼。尤其是高频率、高分辨率采图时&#xff0c;数据传输稍出问题&#xff0c;图像就会出故障。今天用“快…

【IQA技术专题】NIQE代码讲解

本文是对NIQE图像质量评价指标的代码解读&#xff0c;原文解读请看NIQE文章讲解。 本文的代码来源于IQA-Pytorch工程。 1、原文概要 NIQE实现了无参考的图像质量评价指标&#xff0c;可以有效地对图像的感知&#xff08;Fidelity&#xff09;质量进行评估。本文提出了一种完全…

配置时钟分频与倍频

在STM32微控制器中&#xff0c;“配置时钟分频与倍频”是一个关键步骤&#xff0c;它允许开发者根据应用需求调整系统时钟的频率。以下是对这一概念的详细解释&#xff1a;时钟源与基础频率时钟源&#xff1a;STM32微控制器通常支持多种时钟源&#xff0c;如高速外部时钟&#…

【深度学习新浪潮】视觉大模型在预训练方面有哪些关键进展?

近年来,视觉大模型在预训练领域取得了多项突破性进展,涵盖架构设计、多模态融合、数据利用效率及训练策略等多个维度。以下结合2024-2025年最新研究成果,从技术创新和应用突破两方面展开分析: 一、架构创新:突破分辨率与模态限制 超高分辨率预训练 伯克利与英伟达提出的P…

Elasticsearch原理篇

Elasticsearch原理篇写在前面&#xff1a;用之于手&#xff0c;先明于心一、传统数据库的瓶颈&#xff1a;当数据量成为负担1. 千万级数据下的性能衰减2. 分页查询的“深水陷阱”3. 关联查询的扩展难题4. 全文检索能力薄弱二、Elasticsearch 的优势&#xff1a;为搜索而生的分布…

《我是如何用C语言写工控系统的漏洞和Bug》连载(1)内容大纲

第一部分&#xff1a;导论与基础 第1章 引言 1.1 工控系统的独特性和重要性 实时性、可靠性、长生命周期的要求与IT系统的差异&#xff1a;后果不再是信息泄露&#xff0c;而是物理世界的中断与破坏 1.2 为什么C语言依然是工控领域的主流&#xff1f; 性能、底层硬件操作、历史…

.Net程序员就业现状以及学习路线图(三)

一、.Net程序员就业现状分析 1. 市场需求与薪资水平 ‌市场需求两极分化‌&#xff1a;2025年数据显示&#xff0c;.Net开发岗位全国占比约0.009%&#xff0c;主要集中在深圳、上海等一线城市 2 3。高端岗位&#xff08;云原生/AI集成方向&#xff09;年薪可达36-60万&#xff…

云计算学习100天-第40天 -普罗米修斯1

目录 Prometheus 概述—— 安装prometheus 案例 环境说明 实验步骤 一、prometheus服务器配置时间同步 二、安装Prometheus服务器 配置文件说明 三、编写服务启动文件并启动服务 四、访问web页面 Prometheus 概述—— Prometheus是一个开源系统监控和警报工具包&a…

高效文本处理:cut、sort、uniq 和 tr 命令详解与实战

前言 &#x1f52a; 一、cut —— 按列或字符截取 常用选项&#xff1a; 示例&#xff1a; &#x1f504; 二、sort —— 排序&#xff08;默认按行首字符升序&#xff09; 常用选项&#xff1a; 示例&#xff1a; &#x1f9fc; 三、uniq —— 去除连续重复行 常用选项…

时序数据库选型指南:Apache IoTDB为何成为工业物联网首选?

引言&#xff1a;时序数据管理的时代挑战 随着工业4.0和物联网技术的快速发展&#xff0c;全球时序数据呈现爆炸式增长。据IDC预测&#xff0c;到2025年&#xff0c;全球物联网设备产生的数据量将达到79.4ZB&#xff0c;其中超过60%为时序数据。这类数据具有显著特征&#xff…

Ubuntu查看开机以来修改的文件

获取本次开机时间 uptime -s获取开机时间之后修改的文件 find /home -type f -newermt "2025-09-03 18:10:12"解读&#xff1a;-type f意为只查找类型为“普通文件”&#xff08;file&#xff09;&#xff0c;不包括目录、链接等。newermt 代表“修改时间比指定时间新…

差分隐私在运营指标:ABP 的 DP 计数器与噪声预算

&#x1f6a6; 差分隐私在运营指标&#xff1a;ABP 的 DP 计数器与噪声预算 &#x1f4da; 目录&#x1f6a6; 差分隐私在运营指标&#xff1a;ABP 的 DP 计数器与噪声预算0. TL;DR &#x1f680;&#x1f4c8; 一图看懂&#xff08;写入→发布→预算→加噪&#xff09;1. 背景…

洛谷 P1077 [NOIP 2012 普及组] 摆花-普及-

P1077 [NOIP 2012 普及组] 摆花 题目描述 小明的花店新开张&#xff0c;为了吸引顾客&#xff0c;他想在花店的门口摆上一排花&#xff0c;共 mmm 盆。通过调查顾客的喜好&#xff0c;小明列出了顾客最喜欢的 nnn 种花&#xff0c;从 111 到 nnn 标号。为了在门口展出更多种花&…

时序数据库选型指南:为何Apache IoTDB成为工业物联网首选

引言&#xff1a;时序数据管理的挑战与机遇 在工业4.0与物联网技术深度融合的今天&#xff0c;全球设备产生的时序数据量正以指数级增长。据IDC预测&#xff0c;到2025年物联网设备产生的数据将达79.4ZB&#xff0c;其中60%为时序数据。这类数据具有高频采集&#xff08;毫秒级…

【C++】C++入门—(中)

前言&#xff1a;上一篇文章我们介绍了C入门的一些基础的语法&#xff0c;将了命名空间&#xff0c;缺省参数等。这篇文章我们就来介绍剩余的语法。 文章目录一&#xff0c;函数重载二&#xff0c;引用2.1引用的概念和定义2.2引用的特性2.3引用的引用场景2.3.1做函数形参&#…