(CF550A):
不要忽略if ,else if ,else语句块是有先后顺序的,对于可能相互覆盖的多个情况不可以用此语句块。只能分开计数,最后判断。
public class cc {
public static void main(String[] args)
{
java.util.Scanner in = new java.util.Scanner(System.in);
String s = in.nextLine();
char[] str = s.toCharArray();
int ansAB = 0;
int locAB[] = {-1,-1,-1};
int ansBA = 0;
int locBA[] = {-1,-1,-1};
for(int i=1;i<str.length;i++)
{
if(ansAB < 3 && str[i] == 'B' && str[i-1] == 'A')
{
locAB[ansAB] = i-1;
ansAB++;
}
if(ansBA < 3 && str[i] == 'A' && str[i-1] == 'B')
{
locBA[ansBA] = i-1;
ansBA++;
}
if(ansAB >=3 && ansBA >=3 ) break;
}
if(ansAB >= 2 && ansBA >= 2 || ansAB == 1 && ansBA >= 3 || ansAB >= 3 && ansBA == 1)
System.out.println("YES");
else if(ansAB ==1 && ansBA == 1 && Math.abs(locAB[0]-locBA[0]) > 1 )
System.out.println("YES");
else if(ansAB ==1 && ansBA == 2 &&
(Math.abs(locAB[0]-locBA[0]) > 1 || Math.abs(locAB[0]-locBA[1]) > 1))
System.out.println("YES");
else if(ansAB ==2 && ansBA == 1 &&
(Math.abs(locAB[0]-locBA[0]) > 1 || Math.abs(locAB[1]-locBA[0]) > 1))
System.out.println("YES");
else
System.out.println("NO");
in.close();
}
}