寻找克隆人士兵

PythonBeginner
立即练习

介绍

在这个挑战中,你需要在克隆人军队游行方阵中找出所有克隆人士兵。克隆人士兵由特定范围内的数字唯一标识,他们可以用一个方阵来表示。你的目标是统计每个 ID 的克隆人士兵数量,并以字典格式返回统计结果。解决方案应在 count_clone_soldier.py 文件的 count_clone_soldier(matrix: List[List[str]]) 方法中实现。

这是一个挑战(Challenge),与实验(Lab)不同,你需要独立完成挑战任务,而不是按照实验的步骤学习。挑战通常有一点难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。根据历史数据,这是一个 初级 级别的挑战,通过率为 82%。获得了学习者 90% 的好评率。

寻找克隆士兵

挑战描述

在遥远的星系中,存在一个拥有强大克隆军队的银河帝国。现在的挑战 (Challenge) 是找到银河帝国克隆军队阅兵阵列中的所有克隆士兵。

挑战详情

银河帝国中的每个克隆士兵都由 100000001000ffff 之间的唯一数字标识。克隆体和他们的本体共享相同的 ID。

克隆军队的阅兵阵列可以用一个方阵来表示,例如:

[['10000000', '10000012', '1000000d', '1000000d', '10000002'],
['10000004', '10000011', '10000017', '1000000b', '1000000f'],
['10000016', '1000000d', '10000018', '10000012', '10000011'],
['10000001', '1000000c', '10000008', '10000013', '10000000'],
['10000019', '10000000', '1000000e', '10000003', '10000004']]

现在的挑战 (Challenge) 是从矩阵中找到所有的克隆士兵,并统计每个 ID 的 实际克隆 数量。由于克隆体和他们的本体共享相同的 ID,因此在矩阵中出现 N 次的 ID 由一个本体和 N-1 个克隆体组成。因此,一个 ID 的克隆计数是它的总出现次数减一。最后,以字典格式 { 'ID': clone_count } 返回统计结果,其中字典中的键应基于 ID 按升序排列。例如,对于上面的矩阵,克隆士兵的统计结果如下:

{
'10000000': 2,
'10000004': 1,
'1000000d': 2,
'10000011': 1,
'10000012': 1,
}

这个结果表明,对于 ID 10000000(在矩阵中出现 3 次),有 2 个克隆士兵(总共 3 个 - 1 个本体)。类似地,对于 ID 10000004(出现 2 次),有 1 个克隆士兵(总共 2 个 - 1 个本体)。仅出现一次的 ID(例如 10000002)没有克隆体,不应包含在最终字典中。

挑战要求

  1. 确保 count_clone_soldier.py 文件存在于 ~/project 目录中。
  2. count_clone_soldier.py 文件中的 count_clone_soldier(matrix: List[List[str]]) 方法中实现挑战 (Challenge)
  3. 不要修改指定的文件名、类名、方法定义和方法名。
  4. 不要修改类的继承关系和文件路径。
  5. 代码只能在指定区域编写,即 count_clone_soldier.py 文件。
✨ 查看解决方案并练习

总结

恭喜你!你已经完成了「寻找克隆人士兵」挑战。你可以在 LabEx 中练习更多实验来提升你的技能。