Introdução
Neste desafio, sua tarefa é listar corretamente os casos de dois substantivos finlandeses. O segredo é que você pode usar uma das listas como guia para produzir a outra.
Os Substantivos
Usamos as duas tabelas de declinação a seguir como dados. Eles listam os casos de dois substantivos, um caso por linha, na mesma ordem que no artigo da Wikipedia vinculado acima, na forma singular: plural, quando aplicável.
Tabela 1: Casos de óvulos ("porta")
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: Casos de jalka ("pé")
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
A tarefa
Sua tarefa é escrever dois programas f
e g
(possivelmente com nomes diferentes) que recebem uma string como entrada, fornecem uma string como saída e têm a seguinte propriedade. Se a Tabela 1 é fornecida f
como entrada, ela gera a Tabela 2, e se a Tabela 2 é fornecida g
, ela gera a Tabela 1. Todas as outras entradas resultam em comportamento indefinido. As tabelas devem aparecer exatamente como acima, tanto na entrada quanto na saída. Opcionalmente, você pode assumir que há uma nova linha à direita, mas ela deve ser usada nas duas tabelas e nas entradas e saídas. Não há nova linha anterior.
Regras e Bônus
Você pode escrever f
e g
como funções ou programas completos, mas eles devem ser do mesmo tipo e devem ser completamente separados (se você escrever uma função auxiliar f
, deverá reescrevê-la g
se quiser usá-la) . A menor contagem total de bytes vence e as brechas padrão não são permitidas.
Há um bônus de -25% por não usar expressões regulares.
Alguns esclarecimentos
É perfeitamente correto escrever uma função / programa f
que ignore sua entrada e sempre retorne a Tabela 2, e uma função / programa g
que sempre retorne a Tabela 1. É necessário apenas que e ; o comportamento de e em todas as outras entradas é irrelevante.f(Table 1) == Table 2
g(Table 2) == Table 1
f
g
A parte "completamente separada" significa o seguinte. Sua resposta fornece dois pedaços de código, um para f
e outro para g
, de preferência em caixas de código diferentes. Se eu colocar o código f
em um arquivo e executá-lo, ele funcionará e o mesmo para g
. Sua pontuação é a soma das contagens de bytes dos dois pedaços de código. Qualquer código duplicado é contado duas vezes.
f
como entrada"
if Table 1 is given `f` as input
Como alguém insere uma função em uma tabela? Eu não entendo esta parte #