您的位置:首页 > 其它

Two Substrings

2015-09-06 23:05 155 查看
A. Two Substrings

time limit per test
2 seconds

memory limit per test
256 megabytes

input
standard input

output
standard output

You are given string s. Your task is to determine if the given string s contains
two non-overlapping substrings "AB" and "BA"
(the substrings can go in any order).

Input

The only line of input contains a string s of length between 1 and 105 consisting
of uppercase Latin letters.

Output

Print "YES" (without the quotes), if string s contains
two non-overlapping substrings "AB" and "BA",
and "NO" otherwise.

Sample test(s)

input
ABA


output
NO


input
BACFAB


output
YES


input
AXBYBXA


output
NO


Note

In the first sample test, despite the fact that there are substrings "AB" and "BA",
their occurrences overlap, so the answer is "NO".

In the second sample test there are the following occurrences of the substrings: BACFAB.

In the third sample test there is no substring "AB" nor substring "BA".

题意:

      找到“BA”与“AB”同时存在的字符串。。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdio>
#include<set>
using namespace std;
typedef __int64 ll;
#define T 100005
int main()
{
/*freopen("input.txt","r",stdin);*/
int f1,f2,i,t,f3;
char s[T];
while(~scanf("%s",&s))
{
t=strlen(s);f1=f2=f3=0;
for(i=0;i<t-1;++i){
if(s[i]=='B'&&s[i+1]=='A'){
if(s[i+2]=='B')f3++,i++;
else f2++;
i++;
}
else if(s[i]=='A'&&s[i+1]=='B'){
if(s[i+2]=='A')f3++,i++;
else f1++;
i++;
}
}
if((f1&&f2)||(f1&&f3)||(f2&&f3)||f3>=2)printf("YES\n");//漏了l3》=2的情况Wa了几次
else printf("NO\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  codeforces