LeetCode题目笔记——2486. 追加字符以获得子序列

news2024/11/27 10:32:34

文章目录

    • 题目描述
    • 题目难度——中等
    • 方法一:一次遍历
      • 代码/C++
    • 总结

这个是上周末的周赛题目,当时忘做了,晚上的时候才想起,可惜了,题目还挺有意思的,类似的好像在以前做过,题目联机在这题目链接

题目描述

给你两个仅由小写英文字母组成的字符串 s 和 t 。

现在需要通过向 s 末尾追加字符的方式使 t 变成 s 的一个 子序列 ,返回需要追加的最少字符数。

子序列是一个可以由其他字符串删除部分(或不删除)字符但不改变剩下字符顺序得到的字符串。

示例1:

输入:s = “coaching”, t = “coding”
输出:4
解释:向 s 末尾追加字符串 “ding” ,s = “coachingding” 。
现在,t 是 s (“coachingding”) 的一个子序列。
可以证明向 s 末尾追加任何 3 个字符都无法使 t 成为 s 的一个子序列。

示例2:

输入:s = “abcde”, t = “a”
输出:0
解释:t 已经是 s (“abcde”) 的一个子序列。

示例3:

输入:s = “z”, t = “abcde”
输出:5
解释:向 s 末尾追加字符串 “abcde” ,s = “zabcde” 。
现在,t 是 s (“zabcde”) 的一个子序列。
可以证明向 s 末尾追加任何 4 个字符都无法使 t 成为 s 的一个子序列。

提示:

1 <= s.length, t.length <= 105
s 和 t 仅由小写英文字母组成

题目难度——中等

方法一:一次遍历

  题目要求往s末尾添加字符来让t成为s的子字符串,那么最简单的方法不就是直接把t往s后面一连不就行了?但这题不行,因为要求是要添加最少数量的字符,那么,我们只需要找到在字符串t中第一个不在s中的字符x,然后把从x到最后的子字符串连到s末尾,不就可以了吗。所以,我们可以一次遍历两个字符串,使用两个指针分别指向他们的位置,每次迭代都把指向s的往后移一个位置,只有s和t当前位置的字符一样的时候才移动t的指针。

代码/C++

class Solution {
public:
    int appendCharacters(string s, string t) {
        int ps = 0, pt = 0;
        while(ps < s.size() && pt < t.size()){
            if(s[ps] == t[pt]){
                pt++;
            }
            ps++;
        }
        return t.size() - pt;
    }
};

在这里插入图片描述

总结

  这个16ms挺慢的,应该更快才对。这种方法的循环次数是长度较小的那个字符串的长度,所以时间是O(N),只用到了两个常数变量,所以空间是O(1)。。

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

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

相关文章

你好,法语!A2知识点总结(4)

4.固定表达 4.1 devoir faire 4.2 ne…que ne…que&#xff1a;只…,仅仅 注意 用ne…que替换句子 Ex : En ce moment, il mange surtout des crales. En ce moment, il ne mange que des crales. 1)Elle lit surtout des romans. Il fait surtout du tennis.Ils s’intres…

NeRF算法Keras实现教程

在这个教程中&#xff0c;我们展示了 Ben Mildenhall 等人的研究论文 NeRF&#xff1a;将场景表示为用于视图合成的神经辐射场的最小实现。作者提出了一种巧妙的方法&#xff0c;通过神经网络对体积场景函数进行建模来合成场景的新颖视图。 为了帮助你直观地理解这一点&#x…

Mac下adb性能测试实战

本次实验以Editor App为例 1.测试Editor启动时长 打开终端&#xff0c;依次输入如下命令&#xff1a; adb devices 查看设备是否连接 adb shell 进入手机系统 adb devices pm list package -f | grep vidma 获取Editor包名 dumpsys package vidma.video.editor.video…

[glacierctf 2022] 只会3个

目录 Crypto CryptoShop 完成 Strange Letters Simple Crypto ChaCha60 Unpredictable Misc The Climber Size Matters ClipRipStage1 pwn Break the Calculator old dayz File-er rev Whats up Sandboxer 这个比赛完事后马上关网站。想复现都困难。会的不…

【宝塔面板安装与配置、Redis安装与配置、MySQL安装与配置】

提示&#xff1a;宝塔面板下载地址&#xff1a;https://www.bt.cn/new/download.html 文章目录前言一、快速迁移二、设置固定ip一.保证可以连接网络二.设置固定ip三、搭建宝塔面板四、做好备份五、安装Redis六、安装MySQL一、8.0版本以下二、8.0版本以上三、安全组开放端口四、…

GitHub上最全的Java面试题库竟还要收费?黑客强行开源后遭起诉

“金三银四”、“金九银十” 一直被称为是跳槽的旺季&#xff0c;最近也有不少小伙伴找我咨询一些面试相关的问题。但是我的建议是跳槽之前先想清楚自己为什么要跳槽&#xff0c;不要看到身边的同事跳槽之后薪资涨了不少&#xff0c;没有做好充分的准备就盲目开始投简历去面试。…

最新版 Cesium(1.99.0) 构建封装开发环境以及遇到问题

最新版 Cesium&#xff08;1.99.0&#xff09; 构建封装开发环境以及遇到问题使用版本Webpack4.* 集成 Cesium 错误官方示例介绍官方示例配置介绍&#xff1a;官方示例配置补充&#xff1a;webpack5 过程学习资料githup 完整项目最近项目用 Cesium 比较多&#xff0c;因此想把常…

世界各国GDP相关面板数据(1960-2019年)

1、数据来源&#xff1a;世界银行 2、时间跨度&#xff1a;1960-2019年 3、区域范围&#xff1a;全球 4、指标说明&#xff1a; 该数据包含以下指标&#xff1a; 1.世界各国1960-2019年GDP 2.世界各国1960-2019年GDP增长率 3.世界各国1960-2019年人均GDP 4.世界各国196…

SwiftUI 精品源码之学习可视化应用程序基于SceneKit,AVSpeechSynthetizer 文字转语音功能tts(教程)

我是一个非常注重视觉的人,这也适用于我的学习。当他们做某些事情时,我通过观察事物或其他人来学习。我也有很强的听觉倾向,所以你不能指望我读完一本 300 页的小说,但你可以指望我听 1 小时的播客而不会分心,并从中真正学到一些东西。 这种学习方式时常帮助我,从一门学科…

龙蜥开发者说:开源是场马拉松!来自广州大学姚同学的开源成长记 | 第 13 期

「龙蜥开发者说」第 13 期来了&#xff01;开发者与开源社区相辅相成&#xff0c;相互成就&#xff0c;这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的&#xff0c;我们希望在这里让更多人看见技术的力量。本期故事&#xff0c;我们邀请了龙蜥社区开发者姚胤…

远程兴起,前端音视频通话?学

前言 看到前两篇文章都非常受欢迎&#xff0c;加起来有一千多赞了&#x1f44d;&#x1f3fb; &#xff0c;非常的开心&#xff01;&#x1f916;继续加油&#xff01;冲&#xff01; 我们在前两篇文章中大概讲解了 音视频媒体流的获取&#xff0c;处理&#xff0c;以及在上一…

(免费分享)基于jsp的CRM客户管理-带论文

一、课题来源&#xff1a; 自有商业活动&#xff0c;客户关系就一直是商业活动中的一个核心问题&#xff0c;同时也成了商务活动成功的审核标准。在全球经济一体化为时代背景的时代&#xff0c;企业面临着为公司带来更多的客户、为管理者提供准确的信息和便捷的操作查询手段 、…

新旧iphone短信转移,苹果旧手机短信导入新手机

短信携带重要信息内容&#xff0c;新旧iphone短信转移&#xff1f;您可能知道&#xff0c;iOS设备上不支持导出iPhone简讯&#xff0c;更不用说打印iPhone上的短信了。幸运的是&#xff0c;有一些可行的方法可以将iPhone短信导入到另一个iPhone&#xff0c;继续阅读以获得更多帮…

软件协会第01次活动第05次任务布置:爱心代码+演奏歌曲+typora使用pandoc导出+github注册登录+函数练习+写csdn文章

了解更多关注软协官网&#xff1a;https://www.csuftsap.cn/ 来自软件协会编辑&#xff0c;注册会员即可获取全部开源.md资源&#xff0c;请勿转载&#xff0c;归软件协会所有。 文章目录:star: 软件协会第01次活动第05次任务布置1.程序员的浪漫-爱心代码&#xff08;升级版&a…

css3手册

文章目录布局弹性盒生成弹性容器和弹性项目更改方向主轴排列侧轴排列弹性项目伸缩主轴换行网格生成网格布局定义行和列改变排列方向单元格之间的间隙单元格内部的对齐网格项目定位视觉阴影盒子阴影文字阴影圆角背景渐变变形translate 平移scale 缩放rotate 旋转改变变形原点多种…

spring MVC源码探索之AbstractHandlerMethodMapping

AbstractHandlerMethodMapping 是什么 官方解释是这样的。 /*** Abstract base class for {link HandlerMapping} implementations that define* a mapping between a request and a {link HandlerMethod}.** <p>For each registered handler method, a unique mapping…

Java项目:ssm毕业论文管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 毕业设计管理系统 1、本系统使用SSM框架 2、有管理员、教师、学生三种角色&#xff0c;管理员使用admin/admin登录&#xff0c;教师使用t_01/6666登录&a…

JavaWeb简单实例——DBUtils

简单介绍&#xff1a; DBUtils是一个用来简化我们JDBC的编码工作量的一个工具。它可以在不影响数据库访问性能的情况下简化我们的代码编辑量。DBUtils的作用主要是&#xff1a;写数据&#xff0c;读数据&#xff0c;优化性能。 常用的类和对应的API&#xff1a; QureyRunner…

Spring Framework 6正式发布,携JDK 17Jakarta EE开启新篇章

本文已被https://yourbatman.cn收录&#xff1b;女娲Knife-Initializr工程可公开访问啦&#xff1b;程序员专用网盘https://wangpan.yourbatman.cn&#xff1b;技术专栏源代码大本营&#xff1a;https://github.com/yourbatman/tech-column-learning&#xff1b;公号后台回复“…

1.什么是闭包

什么是闭包 1. 概念 闭包&#xff08;closure&#xff09;指有权访问另一个函数作用域中变量的函数。—《JavaScript高级程设计》 简单理解就是一个函数。 2. 如何产生闭包&#xff1f; 当一个嵌套的内部函数引用了嵌套的外部函数的变量&#xff08;函数&#xff09;时&…