Tracks
/
Unison
Unison
/
Übungen
/
Mehrheitselement
Mehrheitselement

Mehrheitselement

Mittel

Anleitung

Du sollst herausfinden, ob es in einer Tüte eine Bonbonfarbe gibt, die den Großteil der Tüte ausmacht. 🍬 Das Mehrheitselement ist eines, das mehr als die Hälfte der Sammlung einnimmt. Gegeben eine Liste von Elementen, die die Farben darstellen, gib die Farbe zurück, die die Mehrheit bildet, andernfalls zeige an, dass keine Mehrheit gefunden wurde.

Für eine einfache Liste [Red, Red, Blue, Red, Green] sollte der Rückgabewert Red sein, weil Red 3 von 5 Mal in der Liste vorkommt. Bei einer Liste [Red, Red, Blue, Green] gibt es jedoch keine Mehrheit, obwohl Red das häufigste Element ist, weil 2/4 nicht größer als die Hälfte der Elemente ist.

Implementierung

  • Bonuspunkte: Kannst du deine Implementierung so verallgemeinern, dass sie das Mehrheitselement in einer List beliebigen Typs findet?
  • Bonuspunkte: Ist deine Implementierung performant, wenn beim Finden der Mehrheit viele verschiedene Elemente zur Auswahl stehen?
  • Du kannst die Funktion majorityFinder auf jede Art und Weise implementieren, die dir gefällt; wir haben aber ein paar Stubs bereitgestellt, die die Ability MyStore verwenden. (Die Ability MyStore ist dieselbe wie Store aus der Standardbibliothek, aber hier haben wir ihr zur besseren Unterscheidung einen etwas anderen Namen gegeben.) Wenn du diese Ability verwendest, musst du den Handler runWith implementieren. runWith gibt sowohl das Ergebnis der Ausführung der Funktion, die die Ability MyStore verwendet, als auch den endgültigen Zustand von MyStore zurück.
  • Wie Ability-Handler Zustand verfolgen können, kannst du in der Dokumentation zu Ability-Handlern nachlesen.
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Unison Exercism

Bereit, mit Mehrheitselement zu starten?

Melde dich bei Exercism an, um Unison mit 53 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.