题目描述
【题目描述】
给你一个仅由A和B构成的字符串,每一次操作你可以将一个A变成一个B,也可以将一个B变成一个A。
请你求出最少多少次操作后,可以将这个字符串变成一个非递减的字符串?
【输入格式】
共一行,第一行有一个字符串,为了大家处理方便,读到空格即表示该字符串结束(即这一行的最后一个字符是空格)
【输出格式】
输出一个数字,表示最少的操作次数
【样例输入 1】
AABBA
【样例输出 1】
1
【样例解释 1】
将最后一个A翻转成B就变成AABBB即为非递减
【数据范围】
对于20%的数据来说
1 <= 字符串长度 <= 100
对于100%的数据来说
1 <= 字符串长度 <= 1e7
我的WA代码(应该没有用了)
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[505];
int x=0,y=0,i=0,n=0;
scanf("%[^\n]%*c",a);
while(a[i]!=' ')
{
if(n==0)
{
if(a[i]=='B')
{
n=1;
}
}
else
{
if(a[i]=='A')
{
x++;
}
}
i++;
}
n=0;
i=0;
while(a[i]!=' ')
{
if(n==0)
{
if(a[i]=='A')
{
n=1;
}
}
else
{
if(a[i]=='B')
{
y++;
}
}
i++;
}
cout<<min(x,y);
return 0;
}
救救蒟蒻