PC10303/UVA10252

来源:互联网 发布:python进阶书籍 知乎 编辑:程序博客网 时间:2024/06/06 03:56

一开始看错题啦,以为是最长公共字序列的变题,认真一看,原来是排列后的最长公共序列,本来想着排序后,从小到大共同就输出的,但是认真一想,根本没必要,我有bitmap啊!之后哗啦啦地码完了,发现一个神奇的事情,就是WA了,毫不怀疑自己,看了一下别人写的代码,思路基本一样,关键就是都去字符串的时候……UVA/PC很多时候都要getline(cin,str)整行读起……改了一下,马上SOLVED了。。。!!!

/*******************************************************************************//* OS           : 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 UTC 2013 GNU/Linux * Compiler     : g++ (GCC)  4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) * Encoding     : UTF8 * Date         : 2014-03-30 * All Rights Reserved by yaolong.*****************************************************************************//* Description: ********************************************************************************************************************************************//* Analysis: ***********************************************************************************************************************************************//*****************************************************************************/#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cmath>using namespace std;#define N 27int A[N],B[N];int main(){    int lenA,lenB;    string strA,strB;    int i;    while(getline(cin,strA)&&getline(cin,strB)){       lenA=strA.length();       lenB=strB.length();       memset(A,0,sizeof(A));       memset(B,0,sizeof(B));       for(i=0;i<lenA;i++){           A[strA[i]-'a']++;        }        for(i=0;i<lenB;i++){          B[strB[i]-'a']++;        }        for(i=0;i<26;i++){               int tmp=min(A[i],B[i]);                while(tmp--){                  cout<<char(i+'a');                }        }        cout<<endl;    }    return 0;}


0 0
原创粉丝点击