求助:非递减字符串
  • 板块学术版
  • 楼主Chalage_2010
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/12/25 14:29
  • 上次更新2023/10/24 06:40:25
查看原帖
求助:非递减字符串
760690
Chalage_2010楼主2022/12/25 14:29

题目描述

【题目描述】

给你一个仅由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;
}

救救蒟蒻

2022/12/25 14:29
加载中...