LeetCode 392. 判断子序列 java题解

https://leetcode.cn/problems/is-subsequence/description/
转化为最长公共子序列问题。求[lens][j]的公共子序列长度是否为lens。

class Solution {//s属于t,lens<=lentpublic boolean isSubsequence(String s, String t) {int lens=s.length(),lent=t.length();if(s.length()==0) return true;if(lent<lens) return false;int[][] dp=new int[lens+1][lent+1];//[i][j]:前i个,[0,i-1]。求[lens][j]的公共子序列长度是否为lens//初始化:i为0或者j为0。公共子序列长度都为0//转化为最长公共子序列问题for(int i=1;i<=lens;i++){for(int j=1;j<=lent;j++){if(s.charAt(i-1)==t.charAt(j-1)){dp[i][j]=dp[i-1][j-1]+1;}else{dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]);}if(i==lens&&dp[i][j]==lens){return true;}}}return false;}
}

这道题应该算是编辑距离的入门题目,因为从题意中我们也可以发现,只需要计算删除的情况,不用考虑增加和替换的情况。
if (s[i - 1] == t[j - 1])
t中找到了一个字符在s中也出现了
if (s[i - 1] != t[j - 1])
相当于t要删除元素,继续匹配

本题 如果删元素一定是字符串t,而 1143.最长公共子序列 是两个字符串都可以删元素。

class Solution {public boolean isSubsequence(String s, String t) {int len1=s.length();int len2=t.length();int i=0,j=0;int count=0;//=len1while(i<len1&&j<len2){char c1=s.charAt(i);char c2=t.charAt(j);/*while(c1=c2&&i<len1&&j<len2){count++;}*/if(c1==c2){count++;i++;j++;}else{j++;}}return count==len1?true:false;}
}

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

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

相关文章

【Kubernetes】Kube Proxy 如何帮助 Pod 之间通信?Kube-Proxy 实践案例

kube-proxy 主要通过管理网络规则和流量转发来帮助 Pod 之间进行通信&#xff0c;具体方式如下&#xff1a; 1. 维护 Service 相关的网络规则 kube-proxy 监听 API Server&#xff0c;当 Service 或 Endpoints 发生变化时&#xff0c;动态更新网络规则。确保流量能正确地从 S…

平衡树的模拟实现

一.平衡树的介绍 平衡树是以二叉树结构为基础&#xff0c;同时引入了平衡因子进行了限制&#xff0c;以保证树的结点之间的高度差小于等于1&#xff0c;在插入删除结点时通过旋转的方法保持高度相对平衡&#xff0c;从而提高搜索等效率。 二.代码实现 1.平衡树结点 平衡树结…

JavaScript基础-获取元素

在Web开发中&#xff0c;使用JavaScript动态地访问和操作网页上的元素是一项基本技能。通过获取页面上的特定元素&#xff0c;我们可以对其进行各种操作&#xff0c;比如修改内容、样式或属性等。本文将详细介绍几种获取DOM元素的方法&#xff0c;并探讨它们的特点及适用场景。…

为什么要用(:deep、::v-deep、>>>)样式穿透

在 Vue.js 中&#xff0c;当你使用像 Element UI 这样的 UI 库时&#xff0c;它们的样式通常是全局的&#xff0c;即使你在组件中使用了 scoped 样式&#xff08;为什么要用scoped&#xff09;&#xff0c;仍然可能需要对这些全局样式进行修改。 为了实现这一点&#xff0c;样…

MySQL中的事务隔离级别有哪些

MySQL中的事务隔离级别 一、事务并发问题二、MySQL 事务隔离级别1. READ UNCOMMITTED&#xff08;读未提交&#xff09;2. READ COMMITTED&#xff08;读已提交&#xff09;3. REPEATABLE READ&#xff08;可重复读&#xff09;&#xff08;MySQL 默认级别&#xff09;4. SERIA…

Python----计算机视觉处理(Opencv:图像镜像旋转)

一、图像镜像旋转 图像的旋转是围绕一个特定点进行的&#xff0c;而图像的镜像旋转则是围绕坐标轴进行的。图像镜像旋转&#xff0c;也可 以叫做图像翻转&#xff0c;分为水平翻转、垂直翻转、水平垂直翻转三种。 通俗的理解为&#xff0c;当以图片的中垂线为x轴和y轴时&#x…

hibernate 自动生成数据库表和java类 字段顺序不一致 这导致添加数据库数据时 异常

hibernate 自动生成的数据库表和java类 字段顺序不一致 这导致该书写方式添加数据库数据时 异常 User user new User( null, username, email, phone, passwordEncoder.encode(password) ); return userRepository.save(user);Hibernate 默认不会保证数据库表字段的顺序与 Ja…

python|结构的模式匹配match|同步迭代

在 Python 中&#xff0c;模式匹配&#xff08;Pattern Matching&#xff09; 是一种强大的功能&#xff0c;用于根据数据的结构或内容进行匹配和处理。Python 3.10 引入了 match 语句&#xff0c;使得模式匹配更加直观和灵活。模式匹配可以用于处理复杂的数据结构&#xff0c;…

博客图床 VsCode + PigGo + 阿里云OSS

关键字 写博客&#xff0c;图床&#xff0c;VsCode&#xff0c;PigGo&#xff0c;阿里云OSS 背景环境 我想把我在本地写的markdown文档直接搬到CSDN上和博客园上&#xff0c;但是图片上传遇到了问题。我需要手动到不同平台上传文件&#xff0c;非常耗费时间和经历。 为了解决…

路由器安全研究:D-Link DIR-823G v1.02 B05 复现与利用思路

前言 D-Link DIR-823G v1.02 B05存在命令注入漏洞&#xff0c;攻击者可以通过POST的方式往 /HNAP1发送精心构造的请求&#xff0c;执行任意的操作系统命令。 漏洞分析 binwalk提取固件&#xff0c;成功获取到固件。 现在我们已经进入到应用里了&#xff0c;那么我们在进行分析…

c++ 类和对象 —— 下 【复习总结】

1. 深入构造函数 1.1 函数体赋值 前文我们提到&#xff0c;创建对象时&#xff0c;编译器会调用构造函数给成员变量赋值。但这并不能称为对对象中成员变量的初始化。因为初始化只能初始化一次&#xff0c;但构造函数体内可以多次赋值。构造函数体中语句只能称为赋初值 那么&…

【量化科普】Volatility,波动率

【量化科普】Volatility&#xff0c;波动率 &#x1f680;量化软件开通 &#x1f680;量化实战教程 在金融市场中&#xff0c;波动率&#xff08;Volatility&#xff09;是衡量资产价格变动幅度的一个重要指标。它反映了资产价格的稳定性和风险水平。高波动率意味着资产价格…

PCIe(Peripheral Component Interconnect Express)详解

一、PCIe的定义与核心特性 PCIe&#xff08;外设组件互连高速总线&#xff09;是一种 高速串行点对点通信协议&#xff0c;用于连接计算机内部的高性能外设。它取代了传统的PCI、PCI-X和AGP总线&#xff0c;凭借其高带宽、低延迟和可扩展性&#xff0c;成为现代计算机系统的核…

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

目录 问题1 问题2 问题3 问题4 简单记录一下nacos2.0.3&#xff0c;编译打包的步骤&#xff0c;首先下载源码&#xff0c;免积分下载&#xff1a; nacos源码&#xff1a; https://download.csdn.net/download/fyihdg/90461118 protoc 安装包 https://download.csdn.net…

通过 TTL 识别操作系统的原理详解

TTL 的工作原理 TTL&#xff08;Time to Live&#xff0c;生存时间&#xff09;是网络中用于控制数据包生命周期的一个关键参数。它通过限制数据包在网络中可以经过的最大路由跳数&#xff08;或最大转发时间&#xff09;&#xff0c;确保数据包不会在网络中无休止地转发。TTL…

总结Solidity 的数据类型

数据类型 在 Solidity 中&#xff0c;类型系统非常丰富&#xff0c;主要分为 值类型&#xff08;Value Types&#xff09;和 引用类型&#xff08;Reference Types&#xff09;。此外&#xff0c;还有一些特殊类型和全局变量。 一.值类型 布尔型&#xff08;bool&#xff09…

Android audio(8)-native音频服务的启动与协作(audiopolicyservice和audioflinger)

音频策略的构建 1、概述 2、AudiopolicyService 2.1 任务 2.2 启动流程 2.2.1 加载audio_policy.conf&#xff08;xml&#xff09;配置文件 2.2.2 初始化各种音频流对应的音量调节点 2.2.3 加载audio policy硬件抽象库 2.2.4设置输出设备 ps:audiopatch流程简介 2.2.5打开输出设…

DeepSeek:从入门到精通

DeepSeek是什么&#xff1f; DeepSeek是一家专注通用人工智能&#xff08;AGI&#xff09;的中国科技公司&#xff0c;主攻大模型研发与应 用。DeepSeek-R1是其开源的推理模型&#xff0c;擅长处理复杂任务且可免费商用。 Deepseek可以做什么&#xff1f; 直接面向用户或者支持…

【一起来学kubernetes】17、Configmap使用详解

前言概述核心特性创建 ConfigMap使用 ConfigMap1. **环境变量**2. **Volume 挂载**3. **命令行参数** 更新与热重载Docker容器中Java服务使用Configmap**一、通过环境变量注入****步骤说明****示例配置** **二、通过 Volume 挂载配置文件****步骤说明****示例配置** **三、动态…

【八股文】从浏览器输入一个url到服务器的流程

1.url解析与DNS解析 浏览器解析用户输入的URL&#xff0c;提取协议&#xff08;HTTP\HTTPS&#xff09;、域名、端口及路径等信息 浏览器首先检查本地DNS缓存和系统DNS缓存&#xff0c;若未命中&#xff0c;查询本地hosts文件 最后递归查询向本地DNS服务器发起请求&#xff…