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

算法之搜索--最长公共子序列LCS

最长公共子序列(longest common sequence):可以不连续
在这里插入图片描述

最长公共子串(longest common substring):连续
在这里插入图片描述

demo

for (int i = 1;i<=lena;i++){
	for (int j = 1;j<=lenb;j++){
		if(a[i-1]==b[j-1]){
			dp[i][j]=dp[i-1][j-1]+1;
		}else{
			dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
		}
	}
}

Coincidence

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb
Find a longest common subsequence of two strings.

输入描述:

First and second line of each input case contain two strings of lowercase character a…z. There are no spaces before, inside or after the strings. Lengths of strings do not exceed 100.

输出描述:

For each case, output k – the length of a longest common subsequence in one line.

代码
#include <bits/stdc++.h>
using namespace std;

int dp[105][105];

void LCS(string a,string b){
	int lena = a.length();
	int lenb = b.length();
	for(int i = 1;i<=lena;i++){
		for(int j = 1;j<=lenb;j++){
			if(a[i-1]==b[j-1]){//注意不是i,j
				dp[i][j]=dp[i-1][j-1]+1;
			}else{
				dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
			}
		}
	}
}


int main(){
	string a,b;
	while(cin>>a>>b){
		int lena = a.length();
		int lenb = b.length();
		LCS(a,b);
		cout<<dp[lena][lenb]<<endl;
	}
	return 0;
}

最长公共子序列

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb
给出两个字符串序列,求最长公共子序列(LCS) 。(改编版,原题规定两字符串长度相等,且无重复元素。)

输入描述:

多组数据输入。
在一行分别输入两个字符串。(字符串长度<=1000)

输出描述:

输出两个字符串的最长公共子序列的长度。

代码
#include <bits/stdc++.h>
using namespace std;

int dp[1005][1005];

void LCS(string a,string b){
	int lena = a.length();
	int lenb = b.length();
	for(int i = 1;i<=lena;i++){
		for(int j = 1;j<=lenb;j++){
			if(a[i-1]==b[j-1]){//注意不是i,j
				dp[i][j]=dp[i-1][j-1]+1;
			}else{
				dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
			}
		}
	}
}

int main(){
	string a,b;
	while(cin>>a>>b){
		int lena = a.length();
		int lenb = b.length();
		LCS(a,b);
		cout<<dp[lena][lenb]<<endl;
	}
	return 0;
}

最长连续公共子序列


http://www.kler.cn/a/316524.html

相关文章:

  • SQL集合运算
  • Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件
  • 阿里云centos7.9服务器磁盘挂载,切换服务路径
  • 使用etl工具kettle的日常踩坑梳理之二、从Hadoop中导出数据
  • ❤React-React 组件基础(类组件)
  • 使用 start-local 脚本在本地运行 Elasticsearch
  • leetcode746. 使用最小花费爬楼梯,动态规划
  • Uniapp低版本的安卓不能用解决办法
  • Qt_窗口界面QMainWindow的介绍
  • Deep Guided Learning for Fast Multi-ExposureImage Fusion
  • 对接空号检测平台可以降低成本吗
  • 动手学深度学习(pytorch)学习记录32-稠密连接网络(DenseNet)[学习记录]
  • Vue | watch监听
  • IDEA Project不显示/缺失文件
  • 手机在网状态查询接口如何用PHP进行调用?
  • AWS 管理控制台
  • Apache APISIX学习(1):介绍、docker启动
  • Java是怎么处理死锁的
  • 006——队列
  • 带线无人机现身俄罗斯抗干扰技术详解
  • HTML5 Video标签的属性、方法和事件汇总,以及常用视频插件推荐
  • 深蓝学院-- 量产自动驾驶中的规划控制算法 小鹏
  • G - Merchant Takahashi / F - Useless for LIS
  • mysql学习教程,从入门到精通,TOP 和MySQL LIMIT 子句(15)
  • 本地连线上Redis访问不通
  • SpringBoot权限认证-Sa-Token的使用与详解