回旋镖是一个V形序列,可以是直立的,也可以是倒置的。具体来说,回旋镖可以定义为:长度为3的子数组,第一位和最后一位相同,中间位不同。一些回飞棒示例:
[3, 7, 3], [1, -1, 1], [5, 6, 5]
创建一个函数,返回数组中回飞棒的总数。
[3, 7, 3, 2, 1, 5, 1, 2, 2, -2, 2]
# 3 boomerangs in this sequence: [3, 7, 3], [1, 5, 1], [2, -2, 2]
要知道,回飞棒可以重叠,就像这样:
[1, 7, 1, 7, 1, 7, 1]
# 5 boomerangs (from left to right): [1, 7, 1], [7, 1, 7], [1, 7, 1], [7, 1, 7], and [1, 7, 1]
示例:
count_boomerangs([9, 5, 9, 5, 1, 1, 1]) ➞ 2
count_boomerangs([5, 6, 6, 7, 6, 3, 9]) ➞ 1
count_boomerangs([4, 4, 4, 9, 9, 9, 9]) ➞ 0
注意:[5,5,5](三个相同的数字)不被认为是回飞棒,因为中间的数字与第一个和最后一个相同。
4条答案
按热度按时间sr4lhrrt1#
一些冗长的方法来做到这一点:
e37o9pze2#
非常简单的方法(抱歉,用Python):
nfeuvbwi3#
请参见可枚举的#each_cons。
py49o6xq4#