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