SDUT 2080 最长公共子序列问题
生活随笔
收集整理的這篇文章主要介紹了
SDUT 2080 最长公共子序列问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
動態規劃。
注意輸入數據中有空格。
代碼如下:
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 5 using namespace std; 6 7 int len[1000][1000]; 8 9 int main() 10 { 11 int i, j, alen, blen; 12 char s1[1000], s2[1000]; 13 while(gets(s1)) 14 { 15 gets(s2); 16 alen=strlen(s1); 17 blen=strlen(s2); 18 for (i=0; i<=alen; i++) 19 len[i][0]=0; 20 for (j=0; j<=blen; j++) 21 len[0][j]=0; 22 for (i=1; i<=alen; i++) 23 { 24 for (j=1; j<=blen; j++) 25 { 26 if (s1[i-1] == s2[j-1]) 27 len[i][j]=len[i-1][j-1]+1; 28 else 29 len[i][j]=max(len[i][j-1], len[i-1][j]); 30 } 31 } 32 cout << len[alen][blen] << endl; 33 } 34 return 0; 35 }轉載于:https://www.cnblogs.com/zrq495/archive/2012/08/10/2632767.html
總結
以上是生活随笔為你收集整理的SDUT 2080 最长公共子序列问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET传统的三层架构
- 下一篇: 关于datediff(year,开始日期