最长公共子序列lcs

news/2025/3/10 17:33:56/文章来源:https://www.cnblogs.com/foxt/p/18763217

最长公共子序列lcs

题目描述

一个字符串A的子串被定义成从A中顺次选出若干个字符构成的串。如A=“cdaad" ,顺次选1,3,5个字符就构成子串" cad" ,现给定两个字符串,求它们的最长共公子串。

输入格式

第一行两个字符串用空格分开。

输出格式

最长子串的长度。

样例输入

abccd aecd

样例输出

3

解题思路

采用动态规划的方法。

dp[i][j]表示长度为ij的两个子串的最长子串长度。

状态转移方程

  1. 若是两个串的最后两位相同,那么dp[i][j]=dp[i-1][j-1]+1

例如:abced abcd abceabc的最长公共子串长度为3,当d=d时,最长公共子串长度为3+1=4

  1. 若是最后两位不相同,则dp[i][j]=max(dp[i-1][j],dp[i][j-1])

例如:abcde abcd dp[i][j]=dp[i-1][j]

abcd abcde dp[i][j]=dp[i][j-1]

代码

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String a = scanner.next();String b = scanner.next();int[][] dp=new int[a.length()+1][b.length()+1];for(int i=1;i<=a.length();i++){Arrays.fill(dp[i],0);}for(int i=1;i<=a.length();i++){for(int j=1;j<=b.length();j++){if(a.charAt(i-1)==b.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]);}}}System.out.println(dp[a.length()][b.length()]);}
}

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

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

相关文章

AI Station使用笔记

一、安装maui (1)在104上,终端操作(必须有sudo权限):sudo apt install cifs-utilspip install maui==0.0.32 -i http://10.9.54.102:8888/simple --trusted-host 10.9.54.102 maui login (fang.wang03,密码为开机密码) maui project init RC_Collaboratives (前…

mysql索引浅谈

一. 索引: 索引是数据库中重要的数据结构,主要作用是提高查询的效率。索引相当于书本的目录,即可以快速定位所需数据的位置,而不用逐页查找。 二. 索引底层结构:索引底层主要采用B+树来实现索引的管理。B+树内部分为叶子节点和非叶子节点;非叶子节点主要用来存储索引和指…

java 常用注解记录汇总

1.@Transactional 可放在类或者方法上 2.@JsonFormat 一般用于格式化时间字段属性 3.@JsonProperty 和 @JSONField 前者是Jackson框架后者是阿里的 用法都是属性名之间的映射,场景多用于接口对接 说明: 比如和对方系统进行接口对接时,可能对方的字段名叫做 chinese_name和…

数据库索引简单介绍

数据库索引 基本概念索引本质是一种可以提升数据查询效率的数据结构主要分类 主要分为两类:聚簇(集)索引:一个叶子节点上存储的是索引(主键值)和数据为对应的行数据 非聚簇(集)索引:一个叶子节点上存储的是索引(某一个字段的值)和数据为对应的主键值B+树索引采用的数…

雅马哈机器人E17故障排除案例参考

雅马哈机器人E17故障是一个与电机控制相关的报警,它包含许多特定的故障代码,例如E17.410、E17.411、E17.802、E17.902、E17.905、E17.915等。 故障排除步骤数据备份:出现故障时,尽快备份数据。 诊断工具:使用教学设备或计算机软件进行诊断,浏览系统的所有故障类型和信息,…

记录---前端实现水印功能

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣前段时间突然接到一个需求,项目中要实现特定水印功能,不同的用户查看时展示用户特有的水印,这样可以在资源外流的时候追究到责任人。 查找搜集了很多方法,有通过CSS伪元素添加水印的、还可以使用CSS重复背景图片、还有…

IDEA2024破解方法

一、下载链接 IDEA2024.2.3: https://www.jetbrains.com/idea/download/other.html 破解脚本和激活码:https://wwpf.lanzouv.com/iZtCB2q6xmwh 二、运行破解脚本 运行 三、输入激活码 激活码位置:

关于举办2024年全国青少年 人工智能创新实践交流展示活动的通知

首页课程项目工具数据集AI 体验读本活动 注册登录“与AI共创未来” 2024年全国青少年人工智能创新实践活动【主办单位】中国科协青少年科技中心、中国青少年科技教育工作者协会、上海人工智能实验室、江苏省科协 【支持单位】中国公众科学素质促进联合体 【承办单位】各省级科…

SRA数据下载丢失质量值信息

001、SRA数据下载丢失质量值信息 使用的转换命令如下: fastq-dump --gzip --split-files -A sample_name sample_name.lite.1zcat SRR17344673_1.fastq.gz | head -n 4 002、解决方法: a、改用EBI数据库:https://www.ebi.ac.uk/ena/browser/viewb、使用 pfastq-dump 进行转…

浏览器插件使用

具体下载——插件小屋 https://www.chajianxw.com/developer/83894.html 在对应的地方填上指定的 header,可以在请求头查看当前的header是否有 新加坡的地址查看当前头部 有 灰度环境 声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/ 如出…

FastAPI 参数别名与自动文档生成完全指南:从基础到高级实战

title: FastAPI 参数别名与自动文档生成完全指南:从基础到高级实战 🚀 date: 2025/3/10 updated: 2025/3/10 author: cmdragon excerpt: 本教程深入探讨 FastAPI 中参数别名与自动文档生成的核心机制,涵盖从基础操作到高级用法。通过详细的代码示例、课后测验和常见错误解…

004TypeScript开发实战

项目搭建规范 一、代码规范 1.1集成editorconfig配置 EditorConfig 有助于为不同 IDE 编辑器上处理同一项目的多个开发人员维护一致的编码风格。 # http://editorconfig.org root = true [*] # 表示所有文件适用 charset = utf-8 # 设置文件字符集为 utf-8 indent_style = spac…