Python 程序找出包含 (base, number) 对的数组中的匹配数
假设,我们以(x,y)格式给出了几个不同的对。这里x表示数字的基数,y表示数字本身。在列表中有表示相同的对。我们必须检查给定数字对中的匹配数。给定的对可以是多余的,也可以包含无效的基数组合。
因此,如果输入类似于num_inputs=2,input_arr=[(10,15),(8,17)],那么输出将为1。
变量num_inputs指定输入的数量,数组input_arr列出数字对。在这里,如果我们看一下这两对;基数10(十进制)中的15与基数8(八进制)中的17相同。因此,有一个匹配项,我们返回输出值1。
示例
让我们看看以下实现以获得更好的理解-
from collections import defaultdict
def solve(num_inputs, input_arr):
arr_len = len(input_arr)
temp_dict = defaultdict(int)
for i in range(num_inputs):
num_base, num_val = str(input_arr[i][0]), str(input_arr[i][1])
temp_dict[int(num_val, int(num_base))] += 1
cnt = 0
for value in temp_dict.values():
cnt += value*(value - 1)//2
return cnt
print(solve(2, [(10, 15), (8, 17)]))输入
2, [(10, 15), (8, 17)]输出结果
1
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西