學習軌道
/
Unison
Unison
/
練習
/
多數元素
多數元素

多數元素

中等

說明

你的任務是判斷袋子裡是否有某種顏色的糖果占了整袋的多數。🍬 多數元素指的是在一個集合中占比超過一半的元素。給你一個由元素組成的陣列,這些元素代表各種顏色,請回傳其中屬於多數的顏色;如果沒有多數,就指出沒有找到多數。

以簡單的陣列[Red, Red, Blue, Red, Green]來說,回傳值應該是 Red,因為 Red 在 5 個元素中出現了 3 次。但如果是[Red, Red, Blue, Green]這樣的陣列,雖然 Red 是最常見的元素,卻沒有多數,因為 2/4 並沒有超過元素總數的一半。

實作

  • 加分題:你能將實作一般化,找出任何型別 List 的多數元素嗎?
  • 加分題:當有很多不同的元素可選時,你的實作在尋找多數元素時是否仍保有效能?
  • 雖然 majorityFinder 函式可以任你用任何方式實作,但我們提供了幾個使用 MyStore ability 的骨架。(MyStore ability 和標準函式庫的 Store 相同,只是這裡我們給了它稍微不同的名稱,以避免混淆。)如果你選擇使用這個 ability,就需要實作 runWith 處理器。runWith 會同時回傳執行使用 MyStore ability 的函式所得的結果,以及 MyStore 的最終狀態。
  • 想知道更多關於 ability 處理器如何追蹤狀態的內容,可以參閱 ability 處理器說明文件。
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Unison Exercism

準備好開始 多數元素 了嗎?

註冊 Exercism,透過 53 個練習 和真人引導來學習並精通 Unison,全部免費。