Tracks
/
Unison
Unison
/
Übungen
/
Passende Klammern
Passende Klammern

Passende Klammern

Schwer

Einführung

Du bekommst die Gelegenheit, Software für den Bracketeer™ zu schreiben, einen uralten, aber leistungsstarken Großrechner. Die Software, die darauf läuft, ist in einer proprietären Sprache geschrieben. Viel von ihrer Syntax kommt dir bekannt vor, aber dir fallen viele Klammern auf: eckige Klammern, geschweifte Klammern und runde Klammern. So mächtig der Bracketeer™ auch ist, es fehlt ihm an Flexibilität. Wenn der Quellcode irgendeine nicht ausgeglichene eckige Klammer, geschweifte Klammer oder runde Klammer enthält, stürzt der Bracketeer™ ab und muss neu gestartet werden. Um ein solches Szenario zu vermeiden, fängst du an, Code zu schreiben, der prüfen kann, ob eckige Klammern, geschweifte Klammern und runde Klammern ausgeglichen sind, bevor du versuchst, ihn auf dem Bracketeer™ auszuführen.

Anleitung

Gegeben ist ein String, der eckige Klammern [], geschweifte Klammern {}, runde Klammern () oder eine beliebige Kombination davon enthält. Prüfe, ob alle Paare korrekt gepaart und verschachtelt sind. Alle anderen Zeichen werden ignoriert. Zum Beispiel ist "{what is (42)}?" ausgeglichen und "[text}" nicht.

Umsetzung

Es gibt viele Wege, diese Übung zu lösen, aber wir haben ein paar zusätzliche Stubs für alle bereitgestellt, die das Schreiben ihrer eigenen Ability-Handler üben möchten.

Die Signatur der Hilfsfunktion checkBalance, die für diese Übung vorgegeben ist, verwendet eine Ability-Anforderung, {Stack}. Die Ability Stack ist für dich definiert, der Handler Stack.run aber nicht! Wenn du möchtest, kannst du die Funktionen Stack.run, checkBalance und isPaired implementieren. Die Tests laufen auch dann, wenn du diese Übung nicht mit Abilities umsetzen möchtest.


Quelle

Ginna Baker
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Unison Exercism

Bereit, mit Passende Klammern zu starten?

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