1268: 小天使改名

时间限制: 2 秒  内存限制: 128 MB
提交: 437  解决: 123
提交 状态

题目描述

小天使的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。

样例输入

3
ch
hc
aa
aa
abc
abb

样例输出

YES
YES
NO

说来惭愧,第一次组队参加线下比赛,卡在这题上,怎么都找不到错误,导致一个队伍三个人心态爆炸。

后来才发现一个坑,就是没有交换,没有相同字符的时候,前后相等的输出是no。
如样例:
输入:
ch
ch
输出:
NO

 1 #include<cstdio>
2 #include<cstring>
3 #define Max 1111
4 char s1[Max],s2[Max];
5 int main()
6 {
7 int t;
8 scanf("%d",&t);
9 while(t--)
10 {
11 int ascii[222]={0};
12 int flag=0,f=0;
13 int u,v;
14 scanf("%s %s",s1,s2);
15 int len=strlen(s1);
16 for(int i=0;i<len;i++) //判断字符串内有没有相同的字符,如果有,则f++,否则 f=0
17 {
18 int x=s1[i];
19 ascii[x]++;
20 if(ascii[x]>1)
21 {
22 f++;
23 break;
24 }
25 }
26 for(int i=0;i<len;i++) //找出两个不同处
27 {
28 if(flag==1&&s1[i]!=s2[i])
29 {
30 v=i;
31 break;
32 }
33 if(s1[i]!=s2[i])
34 {
35 u=i;
36 flag=1;
37 }
38 }
39 if(flag==1) //如果存在两处不同,则将其位置置换。
40 {
41 int temp=s1[v];
42 s1[v]=s1[u];
43 s1[u]=temp;
44 }
45 if(!strcmp(s1,s2))
46 {
47 if(flag==0&&f==0) //若两字符串相等且未置换且单个字符串内无重复字符,则不会是改后的名字
48 printf("NO\n");
49 else
50 printf("YES\n");
51 }
52 else
53 printf("NO\n");
54 }
55 return 0;
56 }

hautoj 1268 小天使改名的更多相关文章

  1. ASP.NET 5 改名 ASP.NET Core 1.0

    今天,Scott Hanselman在其博客上宣布<ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0>, ...

  2. 51Nod 1268 和为K的组合

    51Nod  1268  和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...

  3. VB6.0 为批量字体改名

    从网上下载了一个字符包,解压以后查看,发现文件名是这种形式:0120_XXXXXX_GBK.ttf,看上去很不雅观.我想改成 XXXXXX简体.ttf 这种形式,但字体有300多个,手动修改太浪费时间 ...

  4. TODO:关于自媒体博客改名

    TODO:关于自媒体博客改名 1.微信公众号:ludong86 个人类帐号一个自然年内可主动修改两次名称 2.企鹅号 不能改帐号名称 3.简书 名称可以随意修改,但是个人主页是系统自动生成的. 4.今 ...

  5. 将“早期版本的Windows”改名

    将“早期版本的Windows”改名,并修改系统等待时间 问题描述:       先装Windows XP,再装Windows 7,启动菜单会出现“早期版本的Windows”与“Windows 7”两个 ...

  6. saltstack(主机改名)

    已存在salt中的机器,为了规范,需要将这批主机改名 操作流程:在master把这批机器剔除:然修改这批机器的主机名.在/etc/salt目录下.用mv把minion_id和pki的目录重命名.重启s ...

  7. 批量改名工具 Bulk Rename Utility

    好用的批量改名工具 Bulk Rename Utility 功能: 这个工具既可以改文件名,也可以改目录. 使用技巧: 结合前缀4位 数字 可以让文件排列很整齐 例如:         0030 关于 ...

  8. RX(Reactive Extinsion)和IX(Interactive Extinsion)库改名了

    RX和IX库是我经常用到的库,今天写一个小程序的时候想用IX库的时候,发现却找不到了.在它的源码的网站上找了一下,发现它们被改名了,具体的变化为为: 对于RX库: Rx-Main -> Syst ...

  9. iOS 项目改名~~~~~

    今早出现一个改名的囧事...先记录下...在此之前感谢整理过这片文章的作者 --- GarveyCalvin ,插眼!以下是正文---- 前言:在iOS开发中,有时候想改一下项目的名字,都会遇到很多麻 ...

随机推荐

  1. oracle 12C单实例打PSU

    前提: oracle不管打什么样的补丁,readme都是很好的参考资料. Oracle每季度都会更新一个最新的PSU,现在12.1.0.2.0的最新的PSU是Patch 26925311. 由于今天白 ...

  2. PAT Advanced 1004 Counting Leaves

    题目与翻译 1004 Counting Leaves 数树叶 (30分) A family hierarchy is usually presented by a pedigree tree. You ...

  3. PWN_ret2text,ret2syscall,ret2shellcode

    首先了解下Linux中的保护机制(具体的绕过等后续再说) 1.canary(栈保护) 在函数开始时就随机产生一个值,将这个值CANARY放到栈上紧挨ebp的上一个位置,当攻击者想通过缓冲区溢出覆盖eb ...

  4. 提取当前文件夹下的所有文件名.bat(Windows批处理文件)

    @echo off dir /s/b *.* > 文件名.txt exit

  5. postgres多知识点综合案例

    使用到的知识点: 1.使用with临时存储sql语句,格式[with as xxx(), as xxx2() ]以减少代码: 2.使用round()取小数点后几位: 3.使用to_char()将时间格 ...

  6. What is the difference between Serialization and Marshaling?

    How to serialize and deserialize JSON using C# - .NET | Microsoft Docs https://docs.microsoft.com/en ...

  7. Spring听课笔记(专题一)

    Spring入门课程:https://www.imooc.com/learn/196 第0章: Spring是为解决企业应用程序开发复杂性而创建的一个Java开源框架,应用非常广泛.业内非常流行的SS ...

  8. JavaWeb——Cookie,Session学习汇总

    什么是Cookie Cookie的作用 安全性能 Cookie的语法 Cookie注意细节 Cookie实例练习 什么是会话Session Session语法 Session与浏览器窗口的关系 ses ...

  9. Java 集合框架()

    一概述 二Collection接口 List Set Queue 三Map接口 HashMap LinkedHashMap TreeMap 四其它集合类 Vector Stack HashTable ...

  10. 分析 BAT 互联网巨头在大数据方向布局及大数据未来发展趋势

    > 风起云涌的大数据战场上,早已迎百花齐放繁荣盛景,各大企业加速跑向"大数据时代".而我们作为大数据的践行者,在这个"多智时代"如何才能跟上大数据的潮流, ...