现在有L个黑球、白球从左到右依次排开,现在要求每一个黑球的左边不能有白球,为此可以对已有的L个球重新涂颜色(白涂黑或黑涂白),至少需要涂几个球才能满足要求。
现在有L个黑球、白球从左到右依次排开,形成一个字符串S,其中每个字符为'B'
(代表黑球)或'W'
(代表白球)。要求重新涂色,使得每一个黑球的左边都没有白球。也就是说,所有黑球必须连续地排在最左边,白球连续地排在右边。你可以对已有的L个球重新涂颜色(将'B'
涂为'W'
或将'W'
涂为'B'
),请问至少需要涂几个球才能满足要求。
为了满足条件“每一个黑球的左边不能有白球”,我们可以将所有黑球集中在字符串的最左边,所有白球集中在最右边。为了达到这一点,我们需要找到一个分割点,使得分割点左边全部为黑球,右边全部为白球。为了最小化重新涂色的数量,我们可以考虑以下步骤: