B - Santa Claus and Keyboard Check
CodeForces - 748B
#include <iostream>
#include <algorithm>
#include <string>
#include <cstdio>
#include <cstring>
#include <map>
#include <set>
using namespace std;
int main()
{
char ch1[1000+5],ch2[1000+5];
int visit[30],a[30];
while(~scanf("%s",ch1)){
scanf("%s",ch2);
memset(visit,0,sizeof(visit));
int len=strlen(ch1);
int flag=1,sum=0;
for(int i=0;i<len;i++){
if(!visit[ch1[i]-'a'+1]&&!visit[ch2[i]-'a'+1]){
visit[ch1[i]-'a'+1]=ch2[i]-'a'+1;
visit[ch2[i]-'a'+1]=ch1[i]-'a'+1;//类似 map
if(ch1[i]!=ch2[i]) a[sum++]=ch1[i]-'a'+1;
}
else if(ch2[i]-'a'+1!=visit[ch1[i]-'a'+1]||ch1[i]-'a'+1!=visit[ch2[i]-'a'+1]) flag=0;
}
if(!flag) printf("-1\n");
else{
printf("%d\n",sum);
for(int i=0;i<sum;i++)
printf("%c %c\n",a[i]+'a'-1,visit[a[i]]+'a'-1);
}
}
return 0;
}