码迷,mamicode.com
首页 > 其他好文 > 详细

最长公共子序列LCS

时间:2019-06-29 12:58:16      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:相等   字符串   algo   ring   main   字符   alt   code   依次   

技术图片

 

技术图片

 

 

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <algorithm>
 4 
 5 using namespace std;
 6 
 7 int dp[105][105];
 8 
 9 int main() 
10 {
11     string s1, s2;
12     while(cin >> s1 >> s2)
13     {
14         int L1 = s1.length();
15         int L2 = s2.length();    // 依次求得两个字符串的长度 
16         for(int i = 0; i <= L1; ++i) dp[i][0] = 0;
17         for(int j = 0; j <= L2; ++j) dp[0][j] = 0;    // 设初始值为0 
18         for(int i = 1; i <= L1; ++i)
19         {
20             for(int j = 1; j <= L2; ++j)    // 双重循环依次求得每个dp[i][j]的值 
21             {    
22                 if(s1[i-1] == s2[j-1])        // 因为字符串数组下标从0开始,所以第i个字符位置为s1[i-1],若两个字符相等 
23                     dp[i][j] = dp[i-1][j-1] + 1;
24                 else    // 若当前两个字符不相等 
25                     dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
26             }
27         }
28         
29         cout << dp[L1][L2] << endl;
30     } 
31             
32     return 0;
33 }

 

最长公共子序列LCS

标签:相等   字符串   algo   ring   main   字符   alt   code   依次   

原文地址:https://www.cnblogs.com/FengZeng666/p/11106174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!