1. 程式人生 > >uva1339古老的密碼

uva1339古老的密碼

此題比較簡單,主要一點就是注意字串的元素可以交換順序然後才對映。

注意,在排序的地方可以直接呼叫c語言中的qsort函式或者c++語言中的sort函式。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
    char str1[105],str2[105];
    memset(str1,'A',sizeof(str1));
    memset(str2,'A',sizeof(str2));
    while(scanf("%s %s",str1,str2)==2)
    {
        int fq1[26]={0},fq2[26]={0};
        int n=strlen(str1);
        for(int i=0;i<n;i++)
        {
            int a1=str1[i]-'A',a2=str2[i]-'A';
            fq1[a1]++;
            fq2[a2]++;
        }
        for(int j=0;j<25;j++)
            for(int k=0;k<25-j;k++)
            {
                if(fq1[k]>fq1[k+1]) {int temp=fq1[k];fq1[k]=fq1[k+1];fq1[k+1]=temp;}
                if(fq2[k]>fq2[k+1]) {int temp=fq2[k];fq2[k]=fq2[k+1];fq2[k+1]=temp;}
            }
        int ok=1;
        for(int i=0;i<26;i++)
            if(fq1[i]!=fq2[i]) {printf("NO\n");ok=0;break;}
        if(ok) printf("YES\n");
        memset(str1,'A',sizeof(str1));
        memset(str2,'A',sizeof(str2));
    }
    return 0;
}