memory_qianxiao的博客

心之所向,素履以往!

E. Substring Reverse

E. Substring Reverse
time limit per test
2.0 s
memory limit per test
256 MB
input
standard input
output
standard output

Two strings s and t of the same length are given. Determine whether it is possible to make tfrom s using exactly one reverse of some its substring.

Input

The first line contains the string s, and the second — the string t. Both strings have the same length from 1 to 200000 characters and consist of lowercase Latin letters.

Output

Output «YES», if it is possible to reverse some substring of s to make s equal to t, and «NO», otherwise.

Examples
input
Copy
abcdefg
abedcfg
output
Copy
YES
input
Copy
abcdefg
abdecfg
output
Copy
NO

题意:给你一个s串和t串,如果把他们之中的子串进行翻转后,两个字符串相等的话,就输出YES,否则就是NO。
题解:模拟   我们先记录第一个不同字母的下标和最后一个不同字符的下标,然后翻转就是。不过这里的翻转,我们把第一个下标范围内的字符和第二个字符串同样下标范围的字符进行反向对比,如果所有字符都一样,就YES,否则就NO。还可以交换字符串,不过会改动原来的字符串,容易出错,血泪~

#include<bits/stdc++.h>
using namespace std;
int flag[201000],cnt=0,len;
int main()
{
    string s,t;
    cin>>s>>t;
    for(int i=0; i<s.size(); i++)
    {
        if(s[i]!=t[i])
            flag[cnt++]=i;
    }
     for(int i=flag[cnt-1],j=flag[0];i>=flag[0],j<=flag[cnt-1]; i--,j++)
     if(s[i]!=t[j])
     {
          cout<<"NO"<<endl;
          return 0;
     }
       cout<<"YES"<<endl;
    return 0;
}


阅读更多
版权声明:大家一起学习,欢迎转载,转载请注明出处。若有问题,欢迎纠正! https://blog.csdn.net/memory_qianxiao/article/details/79953249
个人分类: codeforce
上一篇J. Parallelograms
下一篇C. Third-Party Software
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭