(这是我的第一个代码高尔夫球问题)
当我还是个孩子的时候,我父亲和我发明了一款游戏,我们在车上看到的车牌可以根据一些相当简单的规则给出一些要点:
X个相同字母或数字的数量给出X-1分,例如:
22 = 1 point
aa = 1 point
5555 = 3 points
这些数字必须彼此相邻,因此3353
仅给出1分,因为5打破了3的序列。
X的升序或降序序列(至少3个)给出X点,例如:
123 = 3 points
9753 = 4 points
147 = 3 points
分数系统仅适用于1位数字,因此1919
不给出分数,而14710
仅给出3(147)。
序列可以结合起来以提出更多的观点,例如:
1135 = 4 points (1 point for 11 and 3 points for 135)
34543 = 6 points (3 points for 345 and 3 points for 543)
但是,您不能将一个较大的序列切成2个较小的序列以获取加分:1234 = 123, 234 (6 points)
不允许。
给定序列,您的任务是确定车牌给出的分数。
在丹麦,车牌的结构如下:CC II III,其中C是字符,I是整数,因此我的示例输入将反映这种结构。如果您愿意,可以使序列适合您自己的结构,或者,如果您真的很冒险,请让该程序分析车牌的结构,从而使其可以在世界各地的任何类型的车牌上使用。明确说明您决定在答案中使用的结构。
您可以按照自己喜欢的任何方式进行输入,对于我来说,字符串或数组似乎最有意义。
测试输入 输出:
AA 11 111 | 5
AB 15 436 | 3
OJ 82 645 | 0
UI 65 456 | 6
HH 45 670 | 5
YH 00 244 | 5
AJ 00 754 | 1
由于选择自己的结构甚至覆盖所有结构的性质,我不一定会看到如何明确确定赢家。我想获胜者将是一个已经决定的结构中最短的字节。(也不要接受CICIC这样的输入,只是为了方便自己)
编辑:
由于提出了一些评论,我需要分享一些额外的信息:升序或降序序列是指算术序列,因此X +/- a * 0,X +/- a * 1,... X +/- a * n等。例如3-5-7是3 + 2 * 0、3 + 2 * 1、3 + 2 *2。但是,该序列无需从0开始或以结尾0。
更多编辑:
您可以按照自己的喜好输入任何内容,而无需输入空格,破折号或其他任何使车牌更具可读性的内容。如果您可以只接受大写字母或类似的东西来节省字节,那么您也可以这样做。唯一的要求是您的程序可以采用包含字符和数字的字符串/数组/任何东西,并根据规定的规则输出正确数量的点。
XX 87 654
。我想出了一些对您所有测试用例都正确的东西,但是对于这个测试用例却有些不正确。
CCIIIII
,不要使用空格),否则此问题缺少客观的获胜标准,这是我们在此处所需要的。照原样,“(并且不要像CICIC那样接受输入,只是为了让自己更容易)”是非常主观的。什么是可允许结构?
IA99999
包含递减的代码点序列,但不包含数字)。