UVA 10252
按照字典序输出最长公共子序列
1 #include<time.h> 2 #include <cstdio> 3 #include <iostream> 4 #include<algorithm> 5 #include<math.h> 6 #include <string.h> 7 #include<vector> 8 #include<queue> 9 #include<set> 10 #include<iterator> 11 using namespace std; 12 13 14 int dp[1005][1005]; 15 char str1[1005],str2[1005]; 16 17 18 int main() 19 { 20 int len1,len2,i,j; 21 while(gets(str1)&&gets(str2)) 22 { 23 memset(dp,0,sizeof(dp)); 24 len1=strlen(str1); 25 len2=strlen(str2); 26 sort(str1,str1+len1); 27 sort(str2,str2+len2); 28 29 30 for(i=0,j=0;i<len1&&j<len2;)//注意这里的&& 31 { 32 if(str1[i]==str2[j]) 33 { 34 cout<<str1[i]; 35 i++; 36 j++; 37 } 38 else if(str1[i]>str2[j]) 39 j++; 40 else 41 i++; 42 43 } 44 45 cout<<endl; 46 } 47 return 0; 48 }