给定一串红色和蓝色球,找到最小数量的交换以将颜色组合在一起

eff*_*iss 13 arrays sorting algorithm

我们给出了一个形式的字符串:RBBR,其中R - 红色和B - 蓝色.

我们需要找到所需的最小交换次数,以便将颜色组合在一起.在上述情况下,答案是1获得RRBB或BBRR.

我觉得排序部分排序的数组的算法在这里很有用,因为简单的排序会给我们交换的数量,但我们想要minimum交换的数量.

有任何想法吗?

这是根据据称微软面试问题.

Nul*_*Set 16

对字符串进行一次传递并计算红色数量(#R)和蓝色数量(#B).然后再计算第一个#R球(#r)中的红色数和第一个#B球(#b)中的蓝色球数.(#R - #r)和(#B - #b)中的较小者将是所需的最小交换次数.