zoukankan      html  css  js  c++  java
  • [ 9.10 ]CF每日一题系列—— 186A模拟处理字符串

    Description:

      跟你两个不相同的字符串,问你能否将第一个字符串任意两个字母交换一次使得两字符串相同,YES or NO

    Solution:

      一维模拟就好了

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    const int maxn = 1e5 + 1e3;
    char s1[maxn],s2[maxn];
    int main()
    {
        while(~scanf("%s%s",s1,s2))
        {
            int flag = 1;
            int len1 = strlen(s1);
            int len2 = strlen(s2);
            int cnt = 0;
            char change_ch1[5];
            char change_ch2[5];
            if(len1 != len2)flag = 0;
    
            for(int i = 0;i < len1 && flag ;++i)
            {
                if(s1[i] != s2[i])
                {
                    change_ch1[++cnt] = s1[i];
                    change_ch2[cnt] = s2[i];
                }
                if(cnt > 2)flag = 0;
            }
            if(cnt == 1)flag = 0;
            if(cnt == 2 && change_ch1[1] == change_ch2[2] && change_ch1[2] == change_ch2[1])
                flag = 1;
            else
                flag = 0;
            if(flag)
                printf("YES
    ");
            else
                printf("NO
    ");
        }
        return 0;
    }
    
  • 相关阅读:
    React之JSX语法
    Visual Studio Code 使用 Typings 实现智能提示功能
    React.js 之hello word
    Linux命令详解-cd
    Linux命令详解-ls
    linux常用命令
    LINUX系统配置相关
    netsh
    Visual Studio
    乘法算术表
  • 原文地址:https://www.cnblogs.com/DF-yimeng/p/9618548.html
Copyright © 2011-2022 走看看