Desafío
Escriba una función que tome un argumento que sea un verbo y devuelva el tiempo pasado del verbo. (Suponga que el verbo es regular)
Pasado
Nota: considere y como consonante ni vocal.
Normalmente, solo agregar eddespués del final del verbo hace que el verbo sea en tiempo pasado.
Ej: jump→ jumped, ask→asked
Sin embargo, hay otras reglas.
Si el último carácter del verbo dado es
e, simplemente agregued.Ej:
love→loved,move→movedSi el verbo termina con una consonante +
y, entonces cambieyaiy agregueed.Ej:
study→studied,cry→criedSin embargo, si el verbo termina con una vocal +
y, entonces simplemente agregueed.Ej:
play→played,stay→stayedSi un verbo termina con una vocal y una consonante, entonces escríbela una vez más y suma
ed.Ej:
stop→stopped,plan→plannedSin embargo, si un verbo termina con varias vocales + una consonante o una sola vocal + varias consonantes, entonces simplemente agregue
ed.Ej:
look→looked,jump→jumped
Hay más reglas, pero cuidemos solo las reglas anteriores. Por ejemplo, de acuerdo con la regla anterior, visit→ visitted.
Ganador
Como se trata del código golf, gana el código más corto que devuelve correctamente los tiempos pasados.
Ejemplo (JS, 127)
function f(x){return x.replace(/([^aeiouy])y$/,'$1i').replace(/([^aeiouy][aeiou])([^aeiouy])$/,'$1$2$2').replace(/e$/,'')+'ed'}