题解 CF550A【Two Substrings】

概述

题号 难度 \(AC\)时间及记录
\(\texttt{CF550A}\) \(\texttt{洛谷难度:普及/提高-}\) \(\texttt{On 2021/06/14}\)

解析

这道题目题目意思不难理解,
我们看到样例一就知道了选择的 \(AB\)\(BA\) 位置不能冲突。
所以说我们只有两种情况:

  • 先找 \(AB\),再找 \(BA\)
  • 先找 \(BA\),再找 \(AB\)

然后我们就用字符串里的 \(\texttt{find}\) 函数直接搜。
找到以后换一个不着边的字符串替换掉即可。cycy

代码

#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;
}
posted @ 2021-06-18 17:50  Bushuai_Tang  阅读(54)  评论(0编辑  收藏  举报