Wprowadzenie
W tym wyzwaniu Twoim zadaniem jest prawidłowe wylistowanie przypadków dwóch rzeczowników fińskich. Rzecz w tym, że możesz użyć jednej z list jako przewodnika przy tworzeniu drugiej.
Rzeczowniki
Jako naszych danych używamy następujących dwóch tabel deklinacji. Wymieniają przypadki dwóch rzeczowników, po jednym przypadku w wierszu, w takiej samej kolejności, jak w powyższym artykule w Wikipedii, w formie liczby pojedynczej: w stosownych przypadkach liczba mnoga .
Tabela 1: Przypadki jaj („drzwi”)
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
Tabela 2: Przypadki jalki („stopy”)
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
Zadanie
Twoim zadaniem jest napisanie dwóch programów f
i g
(prawdopodobnie o różnych nazwach), które pobierają jeden ciąg jako dane wejściowe, dają jeden ciąg jako dane wyjściowe i mają następującą właściwość. Jeśli f
jako dane wejściowe podano tabelę 1, dane wyjściowe są podane w tabeli 2, a jeśli podano tabelę 2, dane g
wyjściowe są przedstawione w tabeli 1. Wszystkie pozostałe dane wejściowe powodują niezdefiniowane zachowanie. Tabele muszą pojawiać się dokładnie tak jak powyżej, zarówno na wejściu, jak i wyjściu. Opcjonalnie możesz założyć, że istnieje końcowy znak nowej linii, ale wtedy należy go użyć w obu tabelach, zarówno na wejściu, jak i na wyjściu. Nie ma poprzedniej nowej linii.
Zasady i bonusy
Można pisać f
i g
albo jako funkcji lub pełnych programów, ale muszą być tego samego typu, a ponadto muszą być całkowicie oddzielne (jeśli napisać funkcję pomocniczą dla f
, należy ponownie zapisać go w g
jeśli chcesz go używać tam) . Wygrywa najmniejsza łączna liczba bajtów, a standardowe luki są niedozwolone.
Istnieje premia w wysokości -25% za nieużywanie wyrażeń regularnych.
Kilka wyjaśnień
Jest perfekcyjnie napisać funkcję / program f
, który ignoruje swoje wejście i zawsze zwraca Tabela 2, a funkcja / Program g
, który zawsze powraca Tabela 1. Wymagane jest tylko, że i ; zachowanie i na wszystkich innych danych wejściowych jest nieistotne.f(Table 1) == Table 2
g(Table 2) == Table 1
f
g
„Całkowicie oddzielna” część oznacza, co następuje. Twoja odpowiedź zawiera dwa fragmenty kodu, jeden dla f
i jeden dla g
, najlepiej w różnych polach kodu. Jeśli wstawię kod do f
pliku i uruchomię go, zadziała i tak samo g
. Twój wynik jest sumą liczby bajtów dwóch fragmentów kodu. Każdy zduplikowany kod jest liczony dwukrotnie.
f
jako dane wejściowe”
if Table 1 is given `f` as input
Jak wprowadzić funkcję do tabeli? Nie rozumiem tej części