问题 5804 --平衡字符串

5804: 平衡字符串★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 49  解决: 38
[提交][状态][命题人:]

题目描述

给我们一个长度为n,仅有字符‘a’,‘b’构成的字符串s, 定义:AB(s)为该字符串中子串为”ab”的子串个数,BA(s)为该字符串中子串为”ba”的子串个数。比如:s=”ababbbab”, AB(s)=3, BA(s)=2。如果一个字符串s满足:AB(s)=BA(s),则称该字符串为平衡字符串。

在一次操作中,我们可以任选一个整数i(1<=i<=n), si替换为字符‘a’或’b’。问最少经过几次操作后,该字符串s会转换为平衡字符串?

输入

第一行只有一个整数t(1≤t≤1000):测试用例的数量。

接下来共t行,每个测试用例一行一个字符串;

输出

t行,每个测试用例一行一个字符串:经过最少操作次数之后所得到的平衡字符串;

如果有多个结果字符串,任意输出一个即可。

样例输入
Copy
4
b
aabbbabaa
abbb
abbaab
样例输出
Copy
b
aabbbabaa
bbbb
abbaaa

提示

在第一个测试用例中,AB(s)=BA(s)=0, 不需要操作;“b”即为结果字符串;

在第二个测试用例中,AB(s)=BA(s)=2, 不需要操作;“aabbbabaa“即为结果字符串;

在第三个测试用例中,AB(s)=1BA(s)=0,一种操作方法是将s1改为‘b’,从而使得AB(s)=0,此时结果字符串为:”bbbb;

在第四个测试用例中,AB(s)=2BA(s)=1,一种操作方法是将s6改为‘a’,从而使得AB(s)=1,此时结果字符串为:” abbaaa;

来源

 

[提交][状态]