Desafio
Escreva uma função que use um argumento que seja um verbo e retorne o tempo passado do verbo. (Suponha que o verbo seja regular)
Pretérito
Nota: considere y como nem consoante nem vogal.
Normalmente, apenas a adição edapós o final do verbo torna o pretérito do verbo.
Ex: jump→ jumped, ask→asked
No entanto, existem outras regras.
Se o último caractere do verbo fornecido for
e, basta adicionard.Ex:
love→loved,move→movedSe o verbo terminar com uma consoante +
y, altereyparaie adicioneed.Ex:
study→studied,cry→criedNo entanto, se o verbo terminar com uma vogal +
y, basta adicionared.Ex:
play→played,stay→stayedSe um verbo terminar com uma vogal e uma consoante, escreva a consoante mais uma vez e adicione
ed.Ex:
stop→stopped,plan→plannedNo entanto, se um verbo terminar com várias vogais + uma consoante ou vogal única + várias consoantes, basta adicionar
ed.Ex:
look→looked,jump→jumped
Existem mais regras, mas vamos cuidar apenas das regras. Por exemplo, de acordo com a regra acima, visit→ visitted.
Vencedora
Como esse é o código de golfe, o código mais curto que retorna corretamente os tempos passados vence.
Exemplo (JS, 127)
function f(x){return x.replace(/([^aeiouy])y$/,'$1i').replace(/([^aeiouy][aeiou])([^aeiouy])$/,'$1$2$2').replace(/e$/,'')+'ed'}