Substring Reverse
Problem
Two strings s and t of the same length are given. Determine whether it is possible to make t from 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
代码语言:javascript复制abcdefg
abedcfg
Output
代码语言:javascript复制YES
Input
代码语言:javascript复制abcdefg
abdecfg
Output
代码语言:javascript复制NO
题意: 给定两个字符串s、t,能不能反转(逆序)s其中一部分子串使得和t是相同的字符串。
解析:只需要找到需要比较的区间L,R,在这个区间内比较一下是否为相反的子串,就可以了。
代码语言:javascript复制// By Mercury_Lc
#include <bits/stdc .h>
using namespace std;
int main()
{
char s[200005];
char t[200005];
while(~scanf("%s %s",&s,&t))
{
int n = strlen(s);
int l = 0, r = n;
for(int i = 0; i < n; i )
{
if(s[i] == t[i]) l ;
else break;
}
for(int i = n; i >= 0; i --)
{
if(s[i]== t[i]) r --;
else break;
}
//cout << l << " " << r << endl;
int f = 0;
for(int i = l; i <= r; i )
{
if(s[i] != t[r l - i])
{
f= 1;
break;
}
}
if(f==0)printf("YESn");
else printf("NOn");
}
return 0;
}