//还是得注意空串的问题 #include <iostream> #include<string> #include<algorithm> using namespace std; //最长公共子序列 string CalCommon(string s1,string s2) { string result; int len1=s1.length(); int len2=s2.length(); sort(s1.begin(),s1.end()); sort(s2.begin(),s2.end()); int i=0,j=0; while(i<len1&&j<len2) { if(s1[i]==s2[j]){ result+=s1[i]; i++; j++; } else if(s1[i]<s2[j]){ i++; } else { j++; } } return result; } int main() { string s1,s2; while(getline(cin,s1)&&getline(cin,s2)) { if(s1==""||s2=="") printf("/n"); else { string ss= CalCommon(s1,s2); printf("%s/n",ss.c_str()); } } return 1; }