编程题

交换次数

题目描述

IT产业人才需求节节攀升。业内巨头百度、阿里巴巴、腾讯(简称BAT)在某海滩进行招聘活动。

招聘部门一字排开。由于是自由抢占席位,三大公司的席位随机交错在一起,形如:

ABABTATT,这使得应聘者十分别扭。

于是,管理部门要求招聘方进行必要的交换位置,使得每个集团的席位都挨在一起。即最后形如:

BBAAATTT 这样的形状,当然,也可能是:

AAABBTTT 等。

现在,假设每次只能交换2个席位,并且知道现在的席位分布,

你的任务是计算:要使每个集团的招聘席位都挨在一起需要至少进行多少次交换动作。

输入是一行n个字符(只含有字母B、A或T),表示现在的席位分布。

输出是一个整数,表示至少交换次数。

比如,输入

TABTABBTTTT

程序应该输出:

3

再比如,输入:

TTAAABB

程序应该输出:

0

我们约定,输入字符串的长度n 不大于10万

资源约定:

峰值内存消耗(含虚拟机) < 256M

CPU消耗 < 1000ms

查看答案
赣ICP备20007335号-2