Java教程

【算法】大厂笔试题jd

本文主要是介绍【算法】大厂笔试题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个。

这篇关于【算法】大厂笔试题jd的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!