Вызов
Напишите функцию, которая принимает аргумент, который является глаголом, и возвращает прошедшее время глагола. (Предположим, что глагол правильный)
Прошедшее время
Примечание: не считайте 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'}