1 #include <iostream> 2 #include <string> 3 #define MAXN 1000 4 5 using namespace std; 6 7 string s_1; 8 string s_2; 9 void init(); 10 int _m[MAXN][MAXN]; 11 void fun_lcs(); 12 int main() 13 { 14 // freopen("acm.acm","r",stdin); 15 while(cin>>s_1>>s_2) 16 { 17 init(); 18 fun_lcs(); 19 cout<<_m[s_1.length()][s_2.length()]<<endl; 20 } 21 22 return 0; 23 } 24 25 void init() 26 { 27 int i; 28 int j; 29 _m[0][0] = 0; 30 for(i = 0; i < s_1.length(); ++ i) 31 { 32 _m[i+1][1] = 0; 33 } 34 for(j = 0; j < s_2.length(); ++ j) 35 { 36 _m[1][j+1] = 0; 37 } 38 } 39 40 void fun_lcs() 41 { 42 int i; 43 int j; 44 for(i = 0; i < s_1.length(); ++ i) 45 { 46 for(j = 0; j < s_2.length(); ++ j) 47 { 48 if(s_1[i] == s_2[j]) 49 { 50 _m[i+1][j+1] = _m[i][j] + 1; 51 } 52 else 53 { 54 if(_m[i+1][j] > _m[i][j+1]) 55 { 56 _m[i+1][j+1] = _m[i+1][j]; 57 } 58 else 59 { 60 _m[i+1][j+1] = _m[i][j+1]; 61 } 62 } 63 } 64 } 65 }
关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。
技术网站地址: vmfor.com