【算法】大厂笔试题jd

小红与粉刷匠

题目描述

小红遇到了一名粉刷匠。这名粉刷匠有三种颜料,分别是红、黄、蓝。为了方便,这三种颜料分别命名为A、B、C。
现在,粉刷匠正在粉刷一面长度为3n的墙壁。粉刷完毕之后,三种颜料的数目都相同。由于小红不小心踢倒了颜料桶,使得这面墙的每一个地方都染上了三种颜料中的其中一种,这很让粉刷匠头疼。
粉刷匠每次可以选择一段连续的墙壁进行粉刷,即全部粉刷上同一种颜色(A、B、C三种中的其中一种)。粉刷匠想知道,他最少需要多少次粉刷才能使得三种颜料的数目都相同?

输入样例

输入:
  3  # 表示有几组数据
  2  # 墙壁长度为3n,在这里则是 3 * 2 = 6
  ABACBC
  3
  AAABBBBAC
  3
  CAACBCBCC

输出:
  0
  1
  2

提示

对于第一组样例,A、B、C的数目都是2,故无需进行粉刷
对于第二组样例,选择区间[7,9]全部粉刷为C,之后形成的墙壁为 AAABBBCCC
对于第三组样例,先选择区间[4,4]粉刷为B之后形成的墙壁为CAABBCBCC,在选择区间[9,9]全部粉刷为A之后形成的墙壁为CAABBCBCA,此刻每种颜色都有3个。

posted @ 2022-04-02 22:20  爱喝可乐的小企鹅  阅读(110)  评论(0)    收藏  举报