概述
题号 | 难度 | \(AC\)时间及记录 |
---|---|---|
\(\texttt{CF550A}\) | \(\texttt{洛谷难度:普及/提高-}\) | \(\texttt{On 2021/06/14}\) |
解析
这道题目题目意思不难理解,
我们看到样例一就知道了选择的 \(AB\) 和 \(BA\) 位置不能冲突。
所以说我们只有两种情况:
- 先找 \(AB\),再找 \(BA\):
- 先找 \(BA\),再找 \(AB\)
然后我们就用字符串里的 \(\texttt{find}\) 函数直接搜。
找到以后换一个不着边的字符串替换掉即可。
代码
#include<bits/stdc++.h>
using namespace std;
string S,T;
int main(void)
{
cin>>S,T=S;register int F=S.find("AB");
if(F!=-1)
{
S.replace(F,2,"JXT"),F=S.find("BA");
if(F!=-1)puts("YES"),exit(0);
}
S=T,F=S.find("BA");
if(F!=-1)
{
S.replace(F,2,"JXT"),F=S.find("AB");
if(F!=-1)puts("YES"),exit(0);
}
puts("NO");
return 0;
}