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 fet 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é fen 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 fet en gtant 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 gsi 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 fqui ignore son entrée et renvoie toujours le tableau 2, et une fonction / un programme gqui 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 2g(Table 2) == Table 1fg
La partie "complètement séparée" signifie ce qui suit. Votre réponse fournit deux morceaux de code, un pour fet un pour g, de préférence dans des zones de code différentes. Si je mets le code pour fdans 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 inputComment entre-t-on une fonction dans une table? Je ne comprends pas cette partie