小天使改名(模拟)
来源:互联网 发布:诺基亚下载软件网站 编辑:程序博客网 时间:2024/05/21 15:46
小天使改名
时间限制: 2 秒 内存限制: 128 MB
提交: 421 解决: 112
提交: 421 解决: 112
题目描述
小天使的b站帐号被大家发现啦。于是小天使决定改名,将他原有ID中的两个不同位置的字母进行交换。(小天使有可能将两个不同位置的相同字母进行交换,虽然这样做他的ID并没有发生变化)
Lsf知道小天使原来的ID,他想知道某个ID是否可能是小天使的新ID。
输入
第一行为数据组数T(T≤100)。
每组数据的第一行是字符串s1,(2≤length(s1)≤1000),为小天使的原始ID。
第二行是字符串s2,(length(s2)=length(s1)),为Lsf猜测的ID。
s1,s2均只含小写字母。
输出
对每组数据输出一行,如果这个ID可能是小天使的新ID,输出YES,否则输出NO。
样例输入
3chhcaaaaabcabb
样例输出
YESYESNO
题解:给你两个字符串,问你第二个字符串是否可以通过交换一次其中任意两个字符使其与第一个相等……
#include<bits/stdc++.h>#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>#include<stdlib.h>#include<time.h>#include<string>#include<math.h>#include<map>#include<queue>#include<stack>#define INF 0x3f3f3f3f#define ll long long#define For(i,a,b) for(int i=a;i<b;i++)#define sf(a) scanf("%d",&a)#define sfs(a) scanf("%s",a)#define sff(a,b) scanf("%d%d",&a,&b)#define sfff(a,b,c) scanf("%d%d%d",&a,&b,&c)#define pf(a) printf("%d\n",a)#define P() printf("\n")#define mem(a,b) memset(a,b,sizeof(a))using namespace std;char x[1005],y[1005];int a[28],b[28];int main(){ int t; sf(t); while(t--) { sfs(x); sfs(y); int l=strlen(x); int s=0; mem(a,0); mem(b,0); for(int i=0; i<l; i++) // 找两个字符串不同的个数,和记录各自中字符出现次数 { a[x[i]-'a']++; b[y[i]-'a']++; if(x[i]!=y[i])s++; } if(s>2)printf("NO\n"); // 不同个数超过二,所以不可能通过一次交换使两个字符相同 else { int flag=1,aa=0,bb=0; For(i,0,28) // 如果两个字符串中字符出现的次数不同,他们两不可能相同 { aa=max(aa,a[i]); bb=max(bb,b[i]); if(a[i]!=b[i]) { flag=0; break; } } if(flag) { if(s==0) // 两个字符串完全相同时,只有其中有个字符串有个字符至少出现两次,才可能通过一次交换使两个字符串还相同 { if(aa==1&&bb==1) printf("NO\n"); else printf("YES\n"); } else printf("YES\n"); } else printf("NO\n"); } }}
0 0
- 小天使改名(模拟)
- 小天使改名(水题 杭电排位赛-2)
- HAUTOJ 1268: 小天使改名
- HAUTOJ 1268: 小天使改名
- HAUTOJ 1268: 小天使改名
- hautoj 1268: 小天使改名
- 河南工业“玲珑杯”小天使改名
- 2017河南工业大学校赛 I 小天使改名
- 1268: 小天使改名--河南工业大学校赛
- eclipse使用(改名)
- 改名
- 小天使幼儿园管理系统 免费
- 媒体文件批量改名(递归实现)
- 受汉城改名鼓舞,世界各地掀起改名热潮,尤其是那个小日本(笑话)
- VS2005,在设计模式下对控件重命名(改名)
- user32.dll改名后调用postmessage (不可用)
- FileManager 文件管理器优化!(添加文件改名及删除)
- nfs搭建(portmap新版下改名rpcbind)
- 最成熟的网格化系统及支撑平台
- ElementTree
- 选择排序
- PrepareStatement与statement,有什么区别,preparedStatement有哪些优点?
- Android Studio Day03-2(常用操作)
- 小天使改名(模拟)
- xijtuoj wmq的A×B Problem FFT+原根
- cf-343D (深搜序+线段树)
- 低功耗蓝牙:共享单车的新伙伴
- 最大单调递增子序列
- 大数据架构入门总结(Flume + Kafka + ZooKeeper + Spark Streaming + Drools + ELK)
- NYOJ Code the Tree(河南省第七届省赛题目)
- 框架入门--mybatis小细节
- GDB程序调试(一)