View Code of Problem 22

#include<bits/stdc++.h>
using namespace std;
#define N 26
#define M 1005 
int min(int a,int b) {
	return a>b?b:a;
} 
int main()
{
	int n[N];
	int v[N];
//	string Dragon_a,Dragon_b;
	char Dragon_a[M],Dragon_b[M];
	while(cin.getline(Dragon_a,M)) {
		cin.getline(Dragon_b,M);
		memset(n,0,sizeof(int)*N);
		memset(v,0,sizeof(int)*N);
		//Dragon_a.length()
		for(int i=0;i<strlen(Dragon_a);i++) {
			if(Dragon_a[i]>='a'&&Dragon_a[i]<='z') 
				n[Dragon_a[i]-'a']++;
		}
					
		for(int i=0;i<strlen(Dragon_b);i++) {
			if(Dragon_b[i]>='a'&&Dragon_a[i]<='z') 
				v[Dragon_b[i]-'a']++;
		}
			
		for(int i=0;i<N;i++) {
			int mini=0;
			mini = min(n[i],v[i]);
			if(mini>1) {
				for(int j=0;j<mini;j++){
					char s='a'+i;
					cout<<s;
				}	
			} else if(n[i]>0&&v[i]>0){
					char s='a'+i;
					cout<<s;
			}
		}
		cout<<endl;
			
	}
	
	return 0;
}

Double click to view unformatted code.


Back to problem 22