introduction
Dans ce défi, votre tâche consiste à répertorier correctement les cas de deux noms finlandais. La torsion est que vous pouvez utiliser l'une des listes comme guide pour produire l'autre.
Les noms
Nous utilisons les deux tableaux de déclinaison suivants comme données. Ils répertorient les cas de deux noms, un cas par ligne dans le même ordre que dans l'article Wikipedia lié ci-dessus, sous la forme singulière: pluriel le cas échéant.
Tableau 1: Cas d' ovi ("porte")
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
Tableau 2: Cas de jalka ("pied")
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
La tâche
Votre tâche consiste à écrire deux programmes f
et g
(éventuellement avec des noms différents) qui prennent une chaîne en entrée, donnent une chaîne en sortie et ont la propriété suivante. Si le tableau 1 est donné f
en entrée, il sort le tableau 2 et si le tableau 2 est donné g
, il sort le tableau 1. Toutes les autres entrées entraînent un comportement indéfini. Les tableaux doivent apparaître exactement comme ci-dessus en entrée et en sortie. Vous pouvez éventuellement supposer qu'il existe un retour à la ligne de fin, mais il doit ensuite être utilisé dans les deux tables, ainsi qu'en entrée et en sortie. Il n'y a pas de nouvelle ligne précédente.
Règles et bonus
Vous pouvez écrire f
et en g
tant que fonctions ou programmes complets, mais ils doivent être du même type et ils doivent être complètement séparés (si vous écrivez une fonction d'assistance pour f
, vous devez la réécrire g
si vous voulez l'utiliser là-bas) . Le nombre d'octets total le plus faible gagne et les failles standard sont interdites.
Il y a un bonus de -25% pour ne pas utiliser d'expressions régulières.
Quelques clarifications
Il est parfaitement correct d'écrire une fonction / un programme f
qui ignore son entrée et renvoie toujours le tableau 2, et une fonction / un programme g
qui renvoie toujours le tableau 1. Il suffit de cela et ; le comportement de et sur toutes les autres entrées n'est pas pertinent.f(Table 1) == Table 2
g(Table 2) == Table 1
f
g
La partie "complètement séparée" signifie ce qui suit. Votre réponse fournit deux morceaux de code, un pour f
et un pour g
, de préférence dans des zones de code différentes. Si je mets le code pour f
dans un fichier et l'exécute, cela fonctionne, et la même chose pour g
. Votre score est la somme du nombre d'octets des deux morceaux de code. Tout code dupliqué est compté deux fois.
f
en entrée »
if Table 1 is given `f` as input
Comment entre-t-on une fonction dans une table? Je ne comprends pas cette partie