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

最长公共子序列

题目描述

给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就把Z叫做X的子序列。
例如:Z=是序列X=的一个子序列,Z中的元素在X中的下标序列为<1,2,4,6>。
现给你两个序列X和Y,请问它们的最长公共子序列的长度是多少?

输入描述

输入包含多组测试数据。每组输入占一行,为两个字符串,由若干个空格分隔。每个字符串的长度不超过100。

输出描述

对于每组输入,输出两个字符串的最长公共子序列的长度。

输入示例

abcfbc abfcab
programming contest 
abcd mnp

输出示例

4
2
0

Java 代码

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {String str1 = scanner.next();String str2 = scanner.next();System.out.println(lcs(str1, str2));}scanner.close();}// 动态规划解决最长公共子序列问题private static int lcs(String str1, String str2) {int m = str1.length();int n = str2.length();int[][] dp = new int[m+1][n+1];for (int i = 0; i <= m; i++) {for (int j = 0; j <= n; j++) {if (i == 0 || j == 0) {dp[i][j] = 0;} else if (str1.charAt(i-1) == str2.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]);}}}return dp[m][n];}
}

C++ 代码

#include<iostream>
#include<vector>using namespace std;int f[110][110]; //到i,j有多少相同的元素int main(){string x; string y;while(cin>>x>>y){for(int i=1;i<=x.size();i++){for(int j=1;j<=y.size();j++){f[i][j]=max(f[i-1][j],f[i][j-1]);if(x[i-1]==y[j-1]) f[i][j]=max(f[i-1][j-1]+1,f[i][j]);}}cout<< f[x.size()][y.size()]<<endl;}
}
http://www.wxhsa.cn/company.asp?id=7375

相关文章:

  • 使用 Ansible 管理服务器集群
  • Codeforces Round 1051 (Div. 2)
  • 再不学就晚了!RDT LeRobot与RDKS100部署详解
  • 编译Unity4.3.1f1
  • 【R课堂-电机专栏】为什么提高电机的电压时,转速会随之上升?
  • 抽象 CF
  • 单元测试之Mockito使用
  • Jetson有Jtop,Linux有Htop,RDK也有Dtop!
  • 《原子习惯》-读书笔记4
  • Java学习第三天
  • Java学习第四天
  • java学习第一天
  • Java学习第二天
  • 搜索百科(1):Lucene —— 打开现代搜索世界的第一扇门
  • 02020308 .NET Core核心基础组件08-结构化日志和集中日志服务
  • zookeeper的配置
  • 02020307 .NET Core核心基础组件07-什么是Logging、NLog
  • 算法第一周博客
  • nid修改dbid/dbname
  • 攻防世界-parallel-comparator-200 - xxx
  • Manim实现脉冲闪烁特效
  • 2025.9.17总结
  • office2024安装包下载安装教程(2025最新整理)office2024专业增强版下载安装教程
  • 2025竞赛学习资料
  • C++ 模板参数推导问题小记(模板类的模板构造函数)
  • axios两种写法
  • adobe illustrator中使用画笔工具切割图形
  • 2025年了,在 Django 之外,Python Web 框架还能怎么选?
  • AtCoder Beginner Contest 423