面试经典-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;}
}
相关文章:
面试经典-32-判断子序列
题目 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列…...
windows使用知识
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言windows使用知识 一、cmd鼠标选中后,程序不运行的解决方案总结 前言 提示:这里可以添加本文要记录的大概内容: windows使用…...
用python如何实现智能合约?如何使用remix编写solidity智能合约并部署上链
目录 用python如何实现智能合约? 直接展示下成功界面 下面分步骤说: remix代码 python链接remix代码...
Electron窗口管理详解:使用BrowserWindow API打造个性化界面
Electron窗口管理详解:使用BrowserWindow API打造个性化界面 创建和初始化窗口窗口定制化窗口操作与事件监听多窗口管理和工作区布局结语 在当今跨平台桌面应用开发领域,Electron 凭借其 JavaScript 与 HTML5 技术栈结合原生操作系统 API 的能力…...
19---时钟电路设计
视频链接 时钟硬件电路设计01_哔哩哔哩_bilibili 时钟电路设计 晶振是数字电路的心脏,数字电路需要一个稳定的工作时钟信号,时钟电路至关重要! 1、晶振概述 晶振一般指晶体振荡器。晶体振荡器是指从一块石英晶体上按一定方位角切下薄片&…...
PSNR/SSIM/LPIPS图像质量评估三件套(含代码)
在图像质量评估上,有三个重要指标:PSNR,SSIM,LPIPS。本文提供简易脚本分别实现。 PSNR,峰值信噪比,是基于MSE的像素比较低质量评估,一般30dB以上质量就不错,到40dB以上肉眼就很难分…...
20240318uniapp怎么引用组件
在script中增加 import index from "/pages/index/index.vue" 把index直接整个作为一个组件引入 然后注册组件 在export default中增加 components: {index:index }, 注册了index组件,内容为import的index 然后就可以在template里使用 <index&…...
扩展以太网(数据链路层)
目录 一、在物理层扩展以太网 二、在数据链路层扩展以太网 三、以太网交换机的特点 四、以太网交换机的交换方式 五、以太网交换机的自学习功能 六、小结 一、在物理层扩展以太网 使用光纤扩展: • 主机使用光纤(通常是一对光纤)和…...
每日一练 | 华为认证真题练习Day202
1、在组播网络环境中,如果IGMPv2主机和IGMP V1路由器(以下简称版本2主机和版本1路由器)共同处于同一局域网当中,那他们是如何协同工作的?(多选) A. 版本1路由器把IGMPv2报告看作无效的IGMP信息…...
基于python+vue的幼儿园管理系统flask-django-php-nodejs
随着信息时代的来临,过去的传统管理方式缺点逐渐暴露,对过去的传统管理方式的缺点进行分析,采取计算机方式构建幼儿园管理系统。本文通过课题背景、课题目的及意义相关技术,提出了一种活动信息、课程信息、菜谱信息、通知公告、家…...
【java】java环境变量分类
测试代码: public class TestSys {public static void main(String[] args) {/*** 获取所有的系统环境变量*/Map<String, String> map System.getenv();map.forEach((key, value) -> System.out.printf("env:key:%s->value:%s%n"…...
掌握Go语言:Go语言通道,并发编程的利器与应用实例(20)
通道(Channel)是用来在 Go 程序中传递数据的一种数据结构。它是一种类型安全的、并发安全的、阻塞式的数据传输方式,用于在不同的 Go 协程之间传递消息。 基本概念 创建通道:使用make()函数创建一个通道。 ch : make(chan int)…...
JavaSE(上)-Day9
JavaSE(上)-Day9 集合static静态变量静态方法静态方法的注意事项重新认识main方法 继承继承注意事项子类到底能继承父类哪些内容继承中成员变量和成员方法的访问特点重写构造方法的访问特点this & super 集合 因为数组是不可变的,我们在…...
Java 内存模型概述
Java 内存区域 引言: 在并发编程中,需要解决两个问题:线程之间如何通信和线程之间如何同步 通信是指线程之间以何种机制来交换信息 在命令式编程中,通信机制主要分为两种:共享内存和消息传递 Java 的并发采用的是…...
远程桌面安卓版下载 安卓远程控制免费版
远程桌面安卓版下载与安卓远程控制免费版的应用解析 随着移动互联网的快速发展,远程桌面应用逐渐成为了许多用户、特别是技术爱好者和商务人士的必备工具。它们不仅可以在电脑上实现远程控制,还能将这种功能延伸到移动设备上,如安卓手机和平…...
算法打卡day18|二叉树篇07|Leetcode 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
算法题 Leetcode 530.二叉搜索树的最小绝对差 题目链接:530.二叉搜索树的最小绝对差 大佬视频讲解:二叉搜索树的最小绝对差视频讲解 个人思路 因为是在二叉搜索树求绝对差,而二叉搜索树是有序的,那就把它想成在一个有序数组上求最值&…...
MySQL 中的自增ID及其应用场景
在MySQL中,自增ID主要体现在几种不同的场景下,每种自增ID都有其特定用途和行为特征: 1. Auto-Increment ID (PRIMARY KEY AUTO_INCREMENT) 场景:在创建表时,可以为某个整数字段设置AUTO_INCREMENT属性,生成…...
ChatGPT高效完成简历制作[中篇4]-有爱AI实战教程(十一)
演示站点: https://ai.uaai.cn 对话模块 官方论坛: www.jingyuai.com 京娱AI 一、导读: 在使用 ChatGPT 时,当你给的指令越精确,它的回答会越到位,举例来说,假如你要请它帮忙写文案,…...
5.2.5、【AI技术新纪元:Spring AI解码】VertexAI Embeddings
基于Models REST API的PaLM API允许开发者利用下一代大型语言模型PaLM构建生成式AI应用。大型语言模型(LLMs)是一种强大的、多用途的机器学习模型,通过一系列提示使计算机能够理解和生成自然语言。PaLM API基于Google的下一代LLM PaLM,擅长多种任务,包括代码生成、推理和文…...
【vue baidu-map】实现百度地图展示基地,鼠标悬浮标注点展示详细信息
实现效果如下: 自用代码记录 <template><div class"map" style"position: relative;"><baidu-mapid"bjmap":scroll-wheel-zoom"true":auto-resize"true"ready"handler"><bm-mar…...
别再花冤枉钱拍视频了!我用Google Flow AI,30分钟搞定玩具产品宣传片(附完整提示词)
零成本打造爆款产品视频:Google Flow AI实战指南与高效创作公式 在电商与社交媒体营销的激烈竞争中,视频内容已成为转化率最高的媒介形式。但传统视频制作的高昂成本(动辄上万元的拍摄预算)和漫长周期(平均2-4周的制作…...
一份就懂的PyOpenGL实战指南,从零到一构建3D小游戏!
1. 为什么选择PyOpenGL开发3D小游戏? 第一次接触PyOpenGL时,我完全被它的简洁震撼到了。作为一个Python开发者,以前总觉得3D图形编程是C的专属领域,直到发现用不到50行代码就能让一个彩色立方体在屏幕上旋转起来。PyOpenGL完美结合…...
Boost电路PI参数调不好?试试这份基于频域分析的MATLAB调试指南与避坑清单
Boost电路PI参数调不好?试试这份基于频域分析的MATLAB调试指南与避坑清单 Boost变换器的双闭环控制一直是电源工程师的必修课,但很多人在实际调试中会遇到这样的困境:明明按照教科书步骤设计了PI参数,仿真时伯德图看起来完美&…...
SVD不只是数学:深入浅出看懂它在推荐系统和图像压缩里是怎么工作的
SVD不只是数学:深入浅出看懂它在推荐系统和图像压缩里是怎么工作的 当你在线购物时,那些"猜你喜欢"的商品推荐从何而来?当你用手机拍摄照片并上传社交平台时,图片为何能快速加载且不失真?这背后都藏着一个强…...
用LabView和STC89C52打造智能温湿度报警系统(含上位机控制)
用LabView和STC89C52打造智能温湿度报警系统(含上位机控制) 在智能家居和工业监控领域,温湿度监测一直是核心需求之一。传统的手动记录方式早已无法满足现代场景对实时性和智能化的要求。本文将带你从零构建一套完整的智能温湿度报警系统&…...
【5G/4G】Snow 3G算法源码解析:从S盒到密钥流生成
1. Snow 3G算法概述 Snow 3G是3GPP组织为4G LTE和5G网络设计的流密码算法,主要用于无线通信中的数据加密和完整性保护。这个算法在2006年被正式采纳为UMTS和LTE的安全标准之一,与AES和ZUC算法一起构成了移动通信安全的核心防线。 我第一次接触Snow 3G是在…...
Rsync服务架构配置详解【20260416002篇】
文章目录 ✅ 一、生产级 `/etc/rsyncd.conf`(已加固 & 注释完备) ✅ 二、生产环境部署全流程(含权限加固) 步骤 1:创建专用系统用户(无登录、无 shell) 步骤 2:生成加密密码文件(避免明文) 步骤 3:预建 chroot 基础环境(启用 `use chroot = yes` 必须) 步骤 4…...
5分钟上手LogcatReader:安卓设备日志查看神器
5分钟上手LogcatReader:安卓设备日志查看神器 【免费下载链接】LogcatReader A simple app for viewing logcat logs on an android device. 项目地址: https://gitcode.com/gh_mirrors/lo/LogcatReader 还在为复杂的ADB命令而烦恼吗?LogcatReade…...
高效Windows系统优化工具Win11Debloat:智能精简与个性化定制指南
高效Windows系统优化工具Win11Debloat:智能精简与个性化定制指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declut…...
FPGA数字钟实战:用Verilog在Altera开发板上实现整点报时功能(附完整代码)
FPGA数字钟实战:用Verilog在Altera开发板上实现整点报时功能(附完整代码) 当秒针划过表盘最后一格,整点报时的"嘀嗒"声总能唤起人们对时间的敬畏。在数字时代,用FPGA实现这一经典功能不仅是对传统钟表匠精神…...
