经典面试力扣392判断子序列

embedded/2024/11/21 15:45:11/

给定字符串s和t,判断s是否为t的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)
字符而不改变剩余字符相对位置形成的新字符串。
(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。

示例 1:
输入:s =“abc",t="ahbgdc"
输出:true
示例 2:
输入:s=“axc",t="ahbgdc"
输出:false

解题思路:

1.设置双指针 i 和 j 并指向两字符s、t串的开头。

2.遍历字符串t,过程中如果s[i] 和 j[t]相等,指针 i 向前移一位,说明找到s 中的一个字符串t 中的对应位置。最后如果指针i 能遍历完整整个字符串s , 即说明s 是 t 的子序列。

代码:

代码解析:

1.首先初始化两个指针 i 和 j 都为0,分别用于遍历字符串 s 和 t。

2.while循环只要 i 还没有遍历完 s 且 j 还没有遍历完 t ,就进行比较。

3. 如果 s[i] 与 t[j] 相等时,说明 t 中找到了 s 中的一个字符,此时将 i 指针向前移动一位

4.不管是否找到相等字符,j 指针都会向前移动一位,继续在 t 中寻找下一个可能匹配的字符

5.最后,如果能成功遍历整个字符串 s ,就说明 s 是  t 的子序列,返回True 否Flase


http://www.ppmy.cn/embedded/139374.html

相关文章

静态时序分析--时序约束

目录 1.时钟约束1.1创建时钟1.2.生成时钟1.3虚拟时钟1.4 最小时钟脉宽 2.I/O延时约束2.1设置输入延时2.2设置输出延时 3.I/O环境建模约束3.1输入驱动建模3.2输出负载建模 4.时序例外4.1多周期路径设置(multicycle path)4.2伪路径设置(false_p…

Mybatis-Plus 多租户插件属性自动赋值

文章目录 1、Mybatis-Plus 多租户插件1.1、属性介绍1.2、使用多租户插件mavenymlThreadLocalUtil实现 定义,注入租户处理器插件测试domianservice & ServiceImplmapper 测试mapper.xml 方式 1.3、不使用多租户插件 2、实体对象的属性自动赋值使用1. 定义实体类2. 实现 Meta…

【WRF-Urban】URBPARM_LCZ.TBL 查找表解释及内容

【WRF-Urban】URBPARM_LCZ.TBL 查找表解释及内容 URBPARM_LCZ.TBL 文件的作用URBPARM_LCZ.TBL 文件中的参数URBPARM_LCZ.TBL 的使用URBPARM_LCZ.TBL 文件内容如何调整或扩展 URBPARM_LCZ.TBL参考URBPARM_LCZ.TBL 文件是 WRF(天气研究与预报模型) 中用于处理 局地气候区(Loca…

很能体现FPGA硬件思维的一道面试题

在面试的时候,要在短时间检查一个人的水平,需要面试官有针对性的问些问题,这里举例说一个很能体现FPGA硬件思维的一道面试题。 if-else及case语句条件判断的优先级 这里先列出几个例子,大家可以先自行判断以下: exampl…

探索Linux软件包管理的进化之路:从源码编译到Snap包的飞跃

目录 引言一、Linux软件包管理的发展过程1、从源代码安装软件2、使用软件包安装软件3、高级软件包管理工具 二、Deb软件包管理1、查看2、安装3、卸载 三、 使用APT工具管理软件包1、基本功能2、解决依赖关系3、软件包更新4、查询软件包5、安装软件包6、卸载软件包7、升级软件包…

前端三剑客(二):CSS

目录 1. CSS 基础 1.1 什么是 CSS 1.2 语法格式 1.3 引入方式 1.3.1 行内样式 1.3.2 内部样式 1.3.3 外部样式 1.4 CSS 编码规范 2. 选择器 2.1 标签选择器 2.2 id 选择器 2.3 class 选择器(类选择器) 2.4 复合选择器 2.5 通配符选择器 3. 常用 CSS 样式 3.1 c…

03 —— Webpack 自动生成 html 文件

HtmlWebpackPlugin | webpack 中文文档 | webpack中文文档 | webpack中文网 安装 npm install --save-dev html-webpack-plugin 下载html-webpack-plugin本地软件包 npm i html-webpack-plugin --save-dev 配置webpack.config.js让webpack拥有插件功能 const HtmlWebpack…

【MATLAB代码】基于IMM(Interacting Multiple Model)算法的目标跟踪,所用模型:CV、CA、CT

文章目录 3个模型的IMM(代码简介)源代码运行结果代码介绍总结 3个模型的IMM(代码简介) 本MATLAB代码实现了基于IMM(Interacting Multiple Model)算法的目标跟踪。它使用三种不同的运动模型(匀速…