zoukankan      html  css  js  c++  java
  • 河工大玲珑校赛重现の 小天使改名

    题目传送门:http://218.28.220.249:50015/JudgeOnline/problem.php?id=1268

    1268: 小天使改名

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

    题目描述

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


    比赛的时候一次A过,,重现一直都不过,,,后来再仔细一看,,,在我的心里,英语就应该是24个字母>_<
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 using namespace std;
     5 int main()
     6 {
     7     int n,t,i,f,l1,l2,k,ff;
     8     char s1[1100],s2[1100];
     9     int a[26];
    10     scanf("%d",&t);
    11     while(t--)
    12     {
    13         memset(a,0,sizeof(a));
    14         memset(s1,0,sizeof(s1));
    15         memset(s2,0,sizeof(s2));
    16         scanf("%s",s1);
    17         scanf("%s",s2);
    18         f=0;
    19         for(i=0;s1[i]!='';i++)
    20         {
    21             a[s1[i]-'a']++;
    22         }
    23         for(i=0;s2[i]!='';i++)
    24         {
    25             if(a[s2[i]-'a']==0)
    26             {
    27                 f=1;
    28                 break;
    29             }
    30             a[s2[i]-'a']--;
    31         }
    32         
    33         l1=strlen(s1);
    34         l2=strlen(s2);
    35         if(l1!=l2)
    36             f=1;
    37             
    38         if(f==1)
    39         {
    40             printf("NO
    ");
    41             continue;
    42         }
    43         
    44         k=0;
    45         for(i=0;s1[i]!='';i++)
    46         {
    47             if(s1[i]!=s2[i])
    48                 k++;
    49         }
    50         if(k==2)
    51             printf("YES
    ");
    52         else if(k>2)
    53             printf("NO
    ");
    54         else if(strcmp(s1,s2)==0)
    55         {
    56             memset(a,0,sizeof(a));
    57             for(i=0;s1[i]!='';i++)
    58             {
    59                 a[s1[i]-'a']++;
    60             }
    61             for(i=0;i<26;i++)
    62             {
    63                 if(a[i]>1)
    64                 {
    65                     printf("YES
    ");
    66                     f=1;
    67                     break;
    68                 }
    69             }
    70             if(f==0)
    71                 printf("NO
    ");
    72         }
    73     }
    74     return 0;
    75 }
  • 相关阅读:
    RocketMQ读书笔记3——消费者
    RocketMQ读书笔记1——简述
    02_dubbo实例_多版本号
    01_dubbo实例_服务分组
    分布式开放消息系统(RocketMQ)的原理与实践
    关于ajax的那些事
    关于html5之canvas的那些事
    关于js封装框架类库之属性操作
    关于js封装框架类库之样式操作
    关于js封装框架类库之事件模块
  • 原文地址:https://www.cnblogs.com/ljmzzyk/p/6801860.html
Copyright © 2011-2022 走看看