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

面试经典-32-判断子序列

题目

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

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

进阶:

如果有大量输入的 S,称作 S1, S2, … , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?

示例 1:

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

class Solution {// 动态规划public boolean isSubsequence(String s, String t) {int m = t.length();int n = s.length();if (n == 0) {return true;}boolean[][] dp = new boolean[m + 1][n + 1];for (int i = 0; i <= m; i++) {dp[i][0] = true;}for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (t.charAt(i) == s.charAt(j)) {dp[i + 1][j + 1] = dp[i][j];} else {dp[i + 1][j + 1] = dp[i][j + 1];}}}return dp[m][n];}
}

class Solution {// 双指针public boolean isSubsequence(String s, String t) {int m = t.length();int n = s.length();int i = 0, j = 0;while (i < m && j < n) {if (t.charAt(i) == s.charAt(j)) {j++;}i++;}if (j == n) {return true;}return false;}
}
http://www.lryc.cn/news/322354.html

相关文章:

  • windows使用知识
  • 用python如何实现智能合约?如何使用remix编写solidity智能合约并部署上链
  • Electron窗口管理详解:使用BrowserWindow API打造个性化界面
  • 19---时钟电路设计
  • PSNR/SSIM/LPIPS图像质量评估三件套(含代码)
  • 20240318uniapp怎么引用组件
  • 扩展以太网(数据链路层)
  • 每日一练 | 华为认证真题练习Day202
  • 基于python+vue的幼儿园管理系统flask-django-php-nodejs
  • 【java】java环境变量分类
  • 掌握Go语言:Go语言通道,并发编程的利器与应用实例(20)
  • JavaSE(上)-Day9
  • Java 内存模型概述
  • 远程桌面安卓版下载 安卓远程控制免费版
  • 算法打卡day18|二叉树篇07|Leetcode 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
  • MySQL 中的自增ID及其应用场景
  • ChatGPT高效完成简历制作[中篇4]-有爱AI实战教程(十一)
  • 5.2.5、【AI技术新纪元:Spring AI解码】VertexAI Embeddings
  • 【vue baidu-map】实现百度地图展示基地,鼠标悬浮标注点展示详细信息
  • uniapp canvas文字和元素居中
  • 深度探索:SWAT模型和生物地球化学循环模型实现流域生态系统水-碳-氮耦合过程模拟
  • C语言经典算法-5
  • python与excel第二节
  • Google云计算原理与应用(四)
  • 面试常问:为什么 Vite 速度比 Webpack 快
  • principles of network applications网络应用原理
  • QT增加线程函数步骤流程
  • Python基础----字符串(持续更新中)
  • 【论文阅读】DiffSpeaker: Speech-Driven 3D Facial Animation with Diffusion Transformer
  • NVM使用教程