View Code of Problem 2591

#include<stdio.h>
#include<string.h>
int min(int a,int b)
{
	if(a>b)
		return b;
	return a;
}
int main()
{
	int t,i,j,la,lb;
	int hash[26],hash_a[26],hash_b[26];
	char a[110],b[110];
	scanf("%d",&t);
    while(t--)
    {
		scanf("%s%s",a,b);
		la=strlen(a);
		lb=strlen(b);
		memset(hash_a,0,sizeof(hash_a));
		memset(hash_b,0,sizeof(hash_b));
		for(i=0;i<la;i++)
		{
			j=a[i]-'A';
			hash_a[j]++;
		}
		for(i=0;i<lb;i++)
		{
			j=b[i]-'A';
			hash_b[j]++;
		}
		for(i=0;i<26;i++)
			hash[i]=min(hash_a[i],hash_b[i]);
		int flag=1;
		for(i=0;i<26;i++)
			for(j=0;j<hash[i];j++)
			{
				printf("%c",i+'A');
				flag=0;
			}
		if(flag)
			printf("-1");
		printf("\n");
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 2591