Einführung
Bei dieser Herausforderung besteht Ihre Aufgabe darin, die Fälle von zwei finnischen Substantiven korrekt aufzulisten. Der Clou ist, dass Sie eine der Auflistungen als Leitfaden verwenden können, um die andere zu erstellen.
Die Nomen
Wir verwenden die folgenden zwei Deklinationstabellen als unsere Daten. Sie listen die Fälle von zwei Substantiven, einen Fall pro Zeile, in derselben Reihenfolge wie im oben verlinkten Wikipedia-Artikel in der Form Singular: Plural auf , sofern zutreffend.
Tabelle 1: Fälle von Ovi ("Tür")
ovi : ovet
oven : ovien
oven : ovet
ovea : ovia
ovessa : ovissa
ovesta : ovista
oveen : oviin
ovella : ovilla
ovelta : ovilta
ovelle : oville
ovena : ovina
oveksi : oviksi
ovin
ovetta : ovitta
ovine
Tabelle 2: Fälle von Jalka ("Fuß")
jalka : jalat
jalan : jalkojen
jalan : jalat
jalkaa : jalkoja
jalassa : jaloissa
jalasta : jaloista
jalkaan : jalkoihin
jalalla : jaloilla
jalalta : jaloilta
jalalle : jaloille
jalkana : jalkoina
jalaksi : jaloiksi
jaloin
jalatta : jaloitta
jalkoine
Die Aufgabe
Ihre Aufgabe ist es, zwei Programme zu schreiben f
und g
(möglicherweise mit unterschiedlichen Namen) eine Zeichenfolge als Eingabe zu verwenden, eine Zeichenfolge als Ausgabe anzugeben und die folgende Eigenschaft zu haben. Wenn Tabelle 1 f
als Eingabe angegeben wird, wird Tabelle 2 ausgegeben, und wenn Tabelle 2 angegeben wird g
, wird Tabelle 1 ausgegeben . Alle anderen Eingaben führen zu undefiniertem Verhalten. Die Tabellen müssen sowohl in der Eingabe als auch in der Ausgabe genau wie oben angezeigt werden. Sie können optional davon ausgehen, dass es einen nachgestellten Zeilenumbruch gibt, der dann jedoch in beiden Tabellen sowie in der Eingabe und Ausgabe verwendet werden muss. Es gibt keinen vorhergehenden Zeilenumbruch.
Regeln und Boni
Sie können schreiben , f
und g
entweder als Funktionen oder vollständige Programme, aber sie müssen vom gleichen Typ sein, und sie müssen vollständig getrennt sein (wenn Sie eine Hilfsfunktion für schreiben f
, müssen Sie neu zu schreiben es in , g
wenn Sie wollen , dass es dort verwenden) . Die niedrigste Gesamtbytezahl gewinnt und Standardschlupflöcher sind nicht zulässig.
Es gibt einen Bonus von -25%, wenn keine regulären Ausdrücke verwendet werden.
Einige Erläuterungen
Es ist vollkommen in Ordnung, eine Funktion / ein Programm zu schreiben, das / f
das seine Eingabe ignoriert und immer Tabelle 2 zurückgibt, und eine Funktion / ein Programm g
, die / das immer Tabelle 1 zurückgibt. Es ist nur erforderlich, dass und ; Das Verhalten von und bei allen anderen Eingaben ist irrelevant.f(Table 1) == Table 2
g(Table 2) == Table 1
f
g
Der "vollständig getrennte" Teil bedeutet Folgendes. Ihre Antwort enthält zwei Codeteile, einen für f
und einen für g
, vorzugsweise in verschiedenen Codefeldern. Wenn ich den Code für f
in eine Datei lege und ihn ausführe, funktioniert er und das Gleiche für g
. Ihre Punktzahl ist die Summe der Byteanzahlen der beiden Codeteile. Jeder duplizierte Code wird zweimal gezählt.
f
als Eingang“
if Table 1 is given `f` as input
Wie gibt man eine Funktion in eine Tabelle ein? Ich verstehe diesen Teil nicht