Ancient Cipher

来源:互联网 发布:淘宝客服电脑配置 编辑:程序博客网 时间:2024/05/16 07:54

UVa1339


这道题注意并不是固定变换,所以只要判断字符个数是否一样。

#include <stdio.h>#include <algorithm>#include <string.h>#define clr( a ) memset ( a, 0, sizeof ( a ) )const int maxn = 105, N = 26;int cnt1[N], cnt2[N];char str[maxn], ch[maxn];int main ( ){    int flag;    //重排和映射并不是固定,是自己定的    while ( ~ scanf ( "%s%s", str, ch ) )    {        flag = 1;        clr ( cnt1 );        clr ( cnt2 );        for ( int i = 0; str[i]; i ++ )            cnt1[ str[i]-'A' ] ++;        for ( int i = 0; ch[i]; i ++ )            cnt2[ ch[i]-'A' ] ++;        std :: sort ( cnt1, cnt1+N );        std :: sort ( cnt2, cnt2+N );        //所以只需要判断每个字符出现的次数是否一样        for ( int i = 0; i < N; i ++ )            if ( cnt1[i] != cnt2[i] )                flag = 0;        printf ( flag ? "YES\n" : "NO\n" );    }    return 0;}


0 0
原创粉丝点击