当前位置: 首页 > news >正文

判断子序列

本文参考代码随想录

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

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

示例 1:

输入:s = “abc”, t = “ahbgdc”
输出:true
示例 2:

输入:s = “axc”, t = “ahbgdc”
输出:false

提示:

0 <= s.length <= 100
0 <= t.length <= 10^4
两个字符串都只由小写字符组成。

思路

  1. 确定dp数组(dp table)以及下标的含义
    dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]

  2. 确定递推公式
    if (s[i - 1] == t[j - 1]) t中找到了一个字符在s中也出现了
    if (s[i - 1] != t[j - 1]) 相当于t要删除元素,继续匹配

  3. dp数组如何初始化
    dp[i][0] 表示以下标i-1为结尾的字符串,与空字符串的相同子序列长度,所以为0. dp[0][j]同理。

  4. 确定遍历顺序
    从上到下,从左到右

class Solution {
public:bool isSubsequence(string s, string t) {vector<vector<int>> dp(s.size() + 1, vector<int> (t.size() + 1, 0));for(int i = 1; i <= s.size(); i++){for(int j = 1; j <= t.size(); j++){if(s[i - 1] == t[j - 1]) dp[i][j] = dp[i - 1][j - 1] + 1;else dp[i][j] = dp[i][j - 1];}}return dp[s.size()][t.size()] == s.size();}
};

文章转载自:

http://g4XiYzNM.snbrs.cn
http://5sREEB75.snbrs.cn
http://PMWcQVjf.snbrs.cn
http://V3icnzYe.snbrs.cn
http://aw7meJLk.snbrs.cn
http://PXRwI7zZ.snbrs.cn
http://dk4GE3BL.snbrs.cn
http://YSXhTu8d.snbrs.cn
http://LJkus5DW.snbrs.cn
http://qKanjCVt.snbrs.cn
http://UHp1tZmc.snbrs.cn
http://IU6d5AmJ.snbrs.cn
http://hszgThuR.snbrs.cn
http://lMXubDaU.snbrs.cn
http://tNp79Sol.snbrs.cn
http://xVpjJhge.snbrs.cn
http://QqyobGyS.snbrs.cn
http://OWE5pHjM.snbrs.cn
http://osr4QnOr.snbrs.cn
http://wlhHxFiI.snbrs.cn
http://peHYuyJl.snbrs.cn
http://yzrpU92j.snbrs.cn
http://VWq1m7F8.snbrs.cn
http://vCblmVVq.snbrs.cn
http://HK6tg8T1.snbrs.cn
http://f12mhol9.snbrs.cn
http://90SfTTZx.snbrs.cn
http://pTqJlUmc.snbrs.cn
http://xPYJJWlL.snbrs.cn
http://SGZZMwWp.snbrs.cn
http://www.dtcms.com/a/379900.html

相关文章:

  • 鸿蒙数据安全实战:从 AES 到 RSA 的加密解密全流程解析
  • Python与MiniKanren:逻辑编程的艺术与科学
  • DeviceNet 转 EtherCAT:发那科焊接机器人与倍福 CX5140 在汽车焊装线的高速数据同步通讯配置案例
  • J002 Vue+SpringBoot电影推荐可视化系统|双协同过滤推荐算法评论情感分析spark数据分析|配套文档1.34万字
  • 连续hash函数
  • 七彩喜智慧养老:用科技温暖晚年,让关爱永不掉线
  • C++微基础蓝桥杯之旅9.9-9.12
  • 一款好看的jQuery前端框架-HisUI
  • Go语言io.Copy深度解析:高效数据复制的终极指南
  • k8s-init容器学习
  • 【算法磨剑:用 C++ 思考的艺术・Dijkstra 实战】弱化版 vs 标准版模板,洛谷 P3371/P4779 双题精讲
  • Java大厂面试实录:产业互联网大数据与AI服务场景下的微服务与智能搜索(含详细解读)
  • 苍穹外卖项目笔记day08
  • 智能逗猫球方案MCU控制方案浅析-智能宠物玩具,宠物解闷神器
  • Unity键盘控制角色运动
  • 大数据毕业设计-基于Spark的全国高速公路实时路况融合与拥堵预测系统(高分计算机毕业设计选题·定制开发·真正大数据)
  • zmq源码分析之session
  • Xcode 上传 ipa 全流程详解 App Store 上架流程、uni-app 生成 ipa 文件上传与审核指南
  • Java 泛型详解:从基础到高级应用
  • 第6.2节 Android Agent开发<二>
  • ubuntu挂载新硬盘的方法
  • Kubernetes Ingress:使用 Apache APISIX 进行外部流量路由
  • 初学者如何选择适合的云平台进行AIGC训练?
  • Docker存储卷(Volume)完全指南:从入门到精通
  • STM32-FreeRTOS操作系统-二值信号量与计数信号量
  • 蒸面器/蒸脸仪方案开发,蒸面器/蒸脸仪MCU控制方案分析
  • 容器技术崛起:从PaaS到Docker的变革探问
  • 如何定位Mysql慢查询和短而频的查询
  • 机器学习的基本流程:从数据到模型
  • springboot rabbitmq 消息队列入门与实战