【题解】LA 3213【Ancient Cipher】

分析

这里其实很显然可以想到,只要两个字符串的每个字符的出现次数相等,就可以做一个映射,达到目的

代码

#include<cstdio>
#include<cstring>
#include<algorithm>
using std::sort;

int main(){
  char a[666],b[666];
  int cnt1[666],cnt2[666];
  while(scanf("%s",a) != EOF){
    memset(cnt1,0,sizeof(cnt1));
    memset(cnt2,0,sizeof(cnt2));
    scanf("%s",b);
    int len = strlen(a);
    for(int i = 0;i < len;i++) cnt1[a[i] - 'A']++;
    for(int i = 0;i < len;i++) cnt2[a[i] - 'A']++;
    sort(cnt1,cnt1 + 26);sort(cnt2,cnt2 + 26);
    bool running = true;
    for(int i  = 0;i < 26;i++) if(cnt1[i] != cnt2[i]){running = false;break;}
    if(running) printf("YES\n");
    else printf("NO\n");
  }

  return 0;
}

发布者:Cinema

成功的道路并不狭窄,因为大部分人都在颓废。

留下评论

电子邮件地址不会被公开。 必填项已用*标注