求两个字符串的最长公共串。
即统计各字符出现的次数,按字母序枚举,输出该字符两个字符串中出现的较少次数。
#include<cstdio>
#include<cstring>
int cnt1[50],cnt2[50];
char s1[1010],s2[1010];
int main()
{
int i,j,len1,len2;
while(gets(s1)!=NULL)
{
gets(s2);
len1=strlen(s1);
len2=strlen(s2);
memset(cnt1,0,sizeof cnt1);
memset(cnt2,0,sizeof cnt2);
for(i=0;i<len1;i++)
cnt1[s1[i]-'a']++;
for(i=0;i<len2;i++)
cnt2[s2[i]-'a']++;
for(i=0;i<26;i++)
{
int tmp=cnt1[i]<cnt2[i]?cnt1[i]:cnt2[i];
for(j=0;j<tmp;j++) putchar(i+'a');
}
puts("");
}
return 0;
}