轨道
/
Unison
Unison
/
练习
/
多数元素
多数元素

多数元素

中等

说明

你的任务是判断一袋糖里是否存在某种颜色,其数量占了整袋的多数。🍬 多数元素指的是在集合中占据超过一半空间的元素。给定一个表示各种颜色的元素数组,返回找到的多数颜色,否则就表示没有找到多数。

对于一个简单的数组[Red, Red, Blue, Red, Green],返回值应该是 Red,因为 Red 在总共 5 个元素中出现了 3 次。但对于数组[Red, Red, Blue, Green],尽管 Red 是最常见的元素,却不存在多数,因为 2/4 并不大于元素总数的一半。

实现

  • 加分项:你能把实现泛化,让它能找出任意类型 List 中的多数元素吗?
  • 加分项:如果在寻找多数元素时有很多不同的元素可供选择,你的实现性能如何?
  • 虽然你可以用任意方式实现 majorityFinder函数,但我们提供了一些使用 MyStore能力的桩代码。(MyStore能力与标准库中的 Store 相同,只是这里我们给它取了一个略有不同的名字,以免混淆。)如果你选择使用这个能力,就需要实现 runWith处理器。runWith会返回两个东西:使用 MyStore能力的那个函数的运行结果,以及 MyStore的最终状态。
  • 想进一步了解能力处理器如何跟踪状态,可以查阅能力处理器文档。
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Unison Exercism

准备好开始 多数元素 了吗?

注册 Exercism,借助 53 个练习 和真人导师指导,学习并掌握 Unison,全部免费。