Thursday, May 16, 2019

算法题-BAT最小交换次数

题目 IT产业人才需求节节攀升。业内巨头百度、阿里巴巴、腾讯(简称BAT)在某海滩进行招聘活动。 招聘部门一字排开。由于是自由抢占席位,三大公司的席位随机交错在一起,形如: ABABTATT,这使得应聘者十分别扭。 于是,管理部门要求招聘方进行必要的交换位置,使得每个集团的席位都挨在一起。即最后形如: BBAAATTT 这样的形状,当然,也可能是: AAABBTTT 等。 现在,假设每次只能交换2个席位,并且知道现在的席位分布, 你的任务是计算:要使每个集团的招聘席位都挨在一起需要至少进行多少次交换动作。 输入是一行n个字符(只含有字母B、A或T),表示现在的席位分布。 输出是一个整数,表示至少交换次数。 比如,输入: TABTABBTTTT 程序应该输出: 3 再比如,输入: TTAAABB 程序应该输出: 0 我们约定,输入字符串的长度n 不大于10万 资源约定: 峰值内存消耗(含虚拟机)...