这道题写起来没难度,但这种题确实很难,这种字符串的题难在证明。以后也要注意。

奇偶性不同的字符串肯定不能转换,因为每一次交换都是字符串的和增加2。

当字符串长度为2时,可以模拟交换,最多26次。

否则,任选三个字母(x1,x2,x3)->(x1+1,x2,x3+1)......(1)

而且还有(x1,x2,x3)->(x1+2,x2,x3).....(2)

对于第一种变换,可以变换到至多只有一个字母不符合的情况,由于字符串奇偶性相同,则该字母相差为偶数,可以通过第二种变换得到。

#include <iostream>
#include <string.h>
#include <cstring>
#include <cstdio>
using namespace std; char s1[70],s2[70]; int main(){
int T,t=0;
char tmp;
scanf("%d",&T);
while(++t<=T){
scanf("%s",s1);
scanf("%s",s2);
int len=strlen(s1);
printf("Case #%d: ",t);
if(len==2){
int i;
for(i=0;i<26;i++){
tmp=s1[1];
s1[1]=s1[0];
s1[0]=tmp;
s1[0]=(s1[0]-'a'+1)%26+'a';
s1[1]=(s1[1]-'a'+1)%26+'a';
if(strcmp(s1,s2)==0)
break;
}
if(i>=26)puts("NO");
else puts("YES");
}
else{
int sum1=0,sum2=0;
for(int i=0;i<len;i++){
sum1+=(s1[i]-'a');
sum2+=(s2[i]-'a');
}
if(sum1%2==sum2%2)
puts("YES");
else puts("NO");
}
}
return 0;
}

  

最新文章

  1. awk中的system和getline的用法
  2. 【转】ArrayList循环遍历并删除元素的常见陷阱
  3. 如何在word中的第3+n页处插入页面并重新从1开始
  4. QT实现贪吃蛇
  5. Webpack+React配合开发
  6. js学习笔记一-语法结构
  7. oracle的基本信息查询
  8. ERP系统开发平台 (C#语言,支持多数据库)
  9. 【结构型】Decorate模式
  10. git的sshkey生成步骤
  11. Win7环境 搭建IIS环境。发布asp.net MVC项目到IIS(第二期)
  12. LeetCode第十五题-找出数组中三数和为0的答案
  13. JavaScript获取及判断文件类型
  14. Android测试(一)——Apk文件结构以及Android组件介绍
  15. MHA 实现VIP切换用到脚本
  16. 详细解读Android中的搜索框(一)—— 简单小例子
  17. VS2013 UML 如何复制文件
  18. Git 无法拉取,Unlink of file &#39;.git/objects/pack/pack-***.pack&#39; failed. Should I try again? (y/n)
  19. End of Life check fails with NullPointerException
  20. iOS 内存管理(转载)

热门文章

  1. SAP WEBSERVICE Soap中RPC-style和Document-style
  2. 错误: su: 无法设置组: 不允许的操作
  3. Ubuntu安装及ubuntu系统使用菜岛教程
  4. Working with macro signatures
  5. hdoj--1598--find the most comfortable road
  6. Node.js:教程
  7. redis 学习笔记-cluster集群搭建
  8. 使用Azure Docker容器注册表服务
  9. C# 开放式并发冲突报错处理
  10. Android源代码分支、版本号、支持设备列表