Вызов
Напишите функцию, которая принимает аргумент, который является глаголом, и возвращает прошедшее время глагола. (Предположим, что глагол правильный)
Прошедшее время
Примечание: не считайте y согласным или гласным.
Обычно простое добавление edпосле глагола делает прошедшее время глагола.
Пример: jump→ jumped, ask→asked
Однако есть и другие правила.
Если последний символ данного глагола
e, просто добавьтеd.Пример:
love→loved,move→movedЕсли глагол заканчивается согласной +
y, тогда изменитеyнаiи добавьтеed.Пример:
study→studied,cry→criedОднако, если глагол заканчивается гласной +
y, тогда просто добавьтеed.Пример:
play→played,stay→stayedЕсли глагол заканчивается гласной и согласной, то напишите согласную еще раз и добавьте
ed.Пример:
stop→stopped,plan→plannedОднако, если глагол заканчивается несколькими гласными + согласной или одной гласной + несколькими согласными, тогда просто добавьте
ed.Пример:
look→looked,jump→jumped
Есть больше правил, но давайте позаботимся только над правилами. Например, согласно вышеуказанному правилу visit→ visitted.
победитель
Поскольку это кодовый гольф, выигрывает самый короткий код, который правильно возвращает прошедшие времена.
Пример (JS, 127)
function f(x){return x.replace(/([^aeiouy])y$/,'$1i').replace(/([^aeiouy][aeiou])([^aeiouy])$/,'$1$2$2').replace(/e$/,'')+'ed'}