天天看點

poh 2159 Ancient Cipher

題意有點不好讀,第一種是凱撒密碼,第二種是改變字元的序列,這2種方式同時使用,判斷str1能否轉換為str2,看起來好像感覺很難的樣子,其實很簡單,我也不好說,直接看代碼吧。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(void)
{
    int num1[26],num2[26];
    char str[101];
    scanf("%s",str);
    int len = strlen(str);
    memset(num1,0,sizeof(num1));
    memset(num2,0,sizeof(num2));
    for(int i=0;i<len;++i)
    {
     num1[str[i]-'A']++;
    }
    scanf("%s",str);
    len = strlen(str);
    for(int i=0;i<len;++i)
    {
     num2[str[i]-'A']++;
    }
    bool flag = false;
    sort(num1,num1+26);
    sort(num2,num2+26);
    for(int i=0;i<26&&!flag;++i)
    {
        if(num1[i]!=num2[i])
        {
            flag = true;
        }
    }
    if(flag)
    {
        cout<<"NO"<<endl;
    }
    else
        cout<<"YES"<<endl;
    return 0;
}