最长公共子序列
给定两个字符串,求它们最长公共子序列的长度。
例如:
s = "abcd", t = "becd"
输出3("bcd")
利用动态规划求解
1 #include <cstdio> 2 #include <cstdlib> 3 #include <cstring> 4 #include <iostream> 5 #include <algorithm> 6 using namespace std; 7 8 char s[102],t[102]; 9 int dp[102][102]; 10 11 int main(int argc, char const *argv[]) 12 { 13 //freopen("input.txt","r",stdin); 14 while(scanf("%s %s",s,t) != EOF) { 15 int n = strlen(s); 16 int m = strlen(t); 17 memset(dp, 0, sizeof(dp)); 18 for(int i = 0; i < n; i++) { 19 for(int j = 0; j < m; j++) { 20 if(s[i] == t[j]) { 21 dp[i+1][j+1] = dp[i][j] + 1; 22 } 23 else { 24 dp[i+1][j+1] = max(dp[i][j+1], dp[i+1][j]); 25 } 26 } 27 } 28 printf("%d\n",dp[n][m]); 29 } 30 return 0; 31 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用