UVA1339 - Ancient Cipher 【字符串+排序】【紫书例题4.1】
2024-08-31 06:09:59
题意:给定两个字符串,你可以替换或者置换,替换是指可以将相同的字母替换为任意一个字母,而置换是指将字母替换为下一个,如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;
}
最新文章
- 从vue1.0到vue2.0遇到的一些问题的记录
- PHP设计模式(三)
- 让android项目支持boost 支持c++11
- IOS开发之控件篇UITabBarControllor第一章 - 介绍
- iOS 模拟器键盘弹出以及中文输入
- Java快速教程
- Mockito--完整功能介绍(转)
- Netduino开篇
- Ruby中文乱码问题
- xshell远程登录工具的星号密码查看方法
- Windows Docker 使用笔记
- ES6_入门(5)_解构赋值
- Java读取Excel内容
- vue问题大全
- 远程桌面连接问题,ping服务器ip无法连接主机。
- pip离线安装软件包
- APP前端易用性和UI测试
- 简单的redis缓存操作(get、put)
- Transition学习笔记
- 学习笔记——线程 Thread
热门文章
- 用户向导左右滑动页面实现之ViewPager
- luogu2157 [SDOI2009]学校食堂 局部状压
- B1024 生日快乐 递归。。。
- [HDU4689]Derangement
- bzoj 4521 [ Cqoi 2016 ] 手机号码 —— 数位DP
- 杂项-Company:ShineYoo
- Fisher 线性判别
- Spark入门之DataFrame/DataSet
- JSP页面使用EL表达式内容显示不全问题记录
- springmvc 中将MultipartFile转为file,springboot 注入CommonsMultipartResolver