题意:给定两个字符串,你可以替换或者置换,替换是指可以将相同的字母替换为任意一个字母,而置换是指将字母替换为下一个,如A替换B,B替换为C,,,Z替换为A。你需要判断是否可以通过一系列操作使两个字符串相等。

思路:既然可以替换和置换,那么我们就可以用两个数组统计两个字符串中各个字母出现的次数,因为可以随意替换,随意我们只需要将两个数组排序,然后比较两个数组是否相等即可。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
char str1[105],str2[105];
while(~scanf("%s%s",str1,str2))
{
int len=strlen(str1);
int cnt1[26]={0},cnt2[26]={0};
for(int i=0;i<len;i++)
{
cnt1[str1[i]-'A']++;
cnt2[str2[i]-'A']++;
}
sort(cnt1,cnt1+26);
sort(cnt2,cnt2+26);
int flag=0;
for(int i=1;i<26;i++)
if(cnt1[i]!=cnt2[i])
{
flag=1;//如果有不相等的
break;
}
if(flag)
printf("NO\n");
else
printf("YES\n");
}
return 0;
}

最新文章

  1. 从vue1.0到vue2.0遇到的一些问题的记录
  2. PHP设计模式(三)
  3. 让android项目支持boost 支持c++11
  4. IOS开发之控件篇UITabBarControllor第一章 - 介绍
  5. iOS 模拟器键盘弹出以及中文输入
  6. Java快速教程
  7. Mockito--完整功能介绍(转)
  8. Netduino开篇
  9. Ruby中文乱码问题
  10. xshell远程登录工具的星号密码查看方法
  11. Windows Docker 使用笔记
  12. ES6_入门(5)_解构赋值
  13. Java读取Excel内容
  14. vue问题大全
  15. 远程桌面连接问题,ping服务器ip无法连接主机。
  16. pip离线安装软件包
  17. APP前端易用性和UI测试
  18. 简单的redis缓存操作(get、put)
  19. Transition学习笔记
  20. 学习笔记——线程 Thread

热门文章

  1. 用户向导左右滑动页面实现之ViewPager
  2. luogu2157 [SDOI2009]学校食堂 局部状压
  3. B1024 生日快乐 递归。。。
  4. [HDU4689]Derangement
  5. bzoj 4521 [ Cqoi 2016 ] 手机号码 —— 数位DP
  6. 杂项-Company:ShineYoo
  7. Fisher 线性判别
  8. Spark入门之DataFrame/DataSet
  9. JSP页面使用EL表达式内容显示不全问题记录
  10. springmvc 中将MultipartFile转为file,springboot 注入CommonsMultipartResolver