Задав строку в качестве входных данных, выведите строку с применением следующего алгоритма:
1. Split the String by " " (find the words): "Hello World" -> ["Hello","World"]
2. Find the vowel count of each component: [2,1] ( ["H[e]ll[o]","W[o]rld"] )
3. For each of the components, output the first n letter where n is the number
of vowels it contains: ["He","W"]
4. Join the list to a single string and reverse it: "HeW" -> "WeH"
Спекуляции
Вы можете принимать и предоставлять выходные данные в любой стандартной форме , и единственным типом данных, разрешенным как для ввода, так и для вывода, является собственный тип String вашего языка. Принимать ввод непосредственно как список отдельных слов не разрешается.
Вам гарантировано, что не будет последовательных пробелов.
Гласные есть
"a","e","i","o","u","A","E","I","O","U"
, но"y","Y"
не считаются гласными .Вам гарантировано, что на входе будут отображаться только буквы и пробелы, но без перевода строки.
Вывод должен быть чувствительным к регистру.
Вам не гарантируется, что каждое слово содержит гласный. Если в этом слове нет гласных, вам не нужно ничего выводить для него.
Тестовые случаи
Input -> Output
---------------
"" -> ""
"Hello World" -> "WeH"
"Waves" -> "aW"
"Programming Puzzles and Code Golf" -> "GoCauPorP"
"Yay Got it" -> "iGY"
"Thx for the feedback" -> "eeftf"
"Go Cat Print Pad" -> "PPCG"
"ICE CREAM" -> "RCCI"
счет
Самое короткое действительное представление для каждого языка выигрывает, это - код-гольф . Удачи и приятного времяпровождения!
Песочница для тех, кто видит удаленные посты.
Ответы:
Haskell, 59 байт
Попробуйте онлайн!
источник
V , 31 байт
Попробуйте онлайн!
И объяснение:
источник
æ
использованный, я помню, что он добавлялся совсем недавно, и это одна из наиболее полезных команд.æ
является чрезвычайно полезным. Я должен был добавить это давным-давно.ø
тоже очень приятно, это круто, что этот ответ использует оба.|
( попробуйте онлайн! ), Что не в вашем объяснении. Но я не знаю V; это нужно?<C-a>
что курсор ставится в конце слова). tio.run/##K/v//3Cvgv7hTVyHNx1uObzj8OLoxNTM/…Брахилог , 17 байт
Попробуйте онлайн!
объяснение
Это прямой перевод проблемы:
источник
Perl 6 , 57 байт
источник
Алиса , 32 байта
Попробуйте онлайн!
объяснение
Это просто структура для линейного кода в Ordinal (режим обработки строк). Развернув программу, мы получим:
Вот что он делает:
источник
JavaScript (ES6), 76 байт
Контрольные примеры
Показать фрагмент кода
источник
Perl 5, 47 байт
45 байт код + 2 для
-pa
.Попробуйте онлайн!
источник
JavaScript (ES6), 96 байт
Показать фрагмент кода
источник
Thx
) не должны выводиться; ваш тестовый пример выводит все слово.Pyth - 19 байт
Попробуй здесь
Объяснение:
Я мог бы иметь 18 байт, если бы не пустая строка:
источник
@
- пересечение гораздо лучше, чем регулярное выражение здесь. О, я вижу - у вас есть только одна лямбда / карта по сравнению с моей 2.Пиф, 31
Это заняло у меня много времени, и я чувствую, что, возможно, есть лучший подход, но вот что у меня есть:
Интернет тест .
источник
jk
совет.Ом, 13 байт
объяснение
z
.:
) со связанным с ним блоком кодаαv_K_σh
.av
толчкиaeiou
_
выдвигает текущий повторяющийся элементK
считает вхожденияaeiou
в_
_
элемент сноваσh
Разбивает элемент на куски длиныoccurences
и берет первый элемент.occurences
символы0J
Толкает стек присоединился''
0
Необходимо , потому что это требует аргумент , что будут соединены. Если этот аргумент не массив, он присоединяется к стекуR
меняет результатисточник
Рубин ,
5459 + 1 =5560 байтИспользует
-p
флаг для +1 байта.Попробуйте онлайн!
источник
-p
байт стоит?ruby -pe '...'
он всего на один байт большеruby -e '...'
и-e
является допустимым способом выполнения скрипта.Japt v2.0a0,
1210 байтПопытайся
объяснение
В значительной степени делает именно то, что описывает спецификация!
источник
"%v"
на\v
(литерал регулярного выражения одного класса, эквивалентный/\v/
). Конечно, пока не полезно, поскольку я еще не внедрил v2.0;)Желе , 12 байт
Попробуйте онлайн!
источник
05AB1E , 14 байтов
Попробуйте онлайн!
У Darn 05AB1E нет встроенной функции для AEIOUaeiou ಠ_ಠ
источник
#RʒDlžMÃg£R?
для 12, вы можете в значительной степени просто нижний регистр dupe, устраняя необходимостьAEIOUaeiou
. Кроме того, почему, черт возьми, эта работа не будет без?
? Можете ли вы опубликовать объяснение, с которым я незнакомʒ
Mathematica, 145 байт
источник
s[[i]]],
и{i,Length@s}
быть удаленным?"aeiouAEIOU".ToCharArray()
?Retina ,
4946 байтПопробуйте онлайн! Ссылка включает тестовый набор. Объяснение: Это приложение балансировочных групп .NET. Голова ищет в слове гласные, которые записаны в группе 2. Затем группа подбирается при совпадении каждой буквы, таким образом фиксируя количество букв, равное количеству гласных в слове. Остальная часть слова и любой завершающий пробел затем игнорируются, так что процесс может начаться снова со следующего слова. Наконец остальные буквы поменялись местами.
источник
C # (.NET Core) , 144 байта
Попробуйте онлайн!
Хуже всего то, что обращение
string
C в C # возвращает a,IEnumerable<char>
которое вы должны преобразовать обратно в astring
.источник
PHP , 96 байт
Попробуйте онлайн!
источник
Python 3 ,
83817977 байтовПопробуйте онлайн!
источник
()
печататьraw_input()
вместо того,input()
чтобы тратить 4 байта.Java 8 ,
171151 байт-20 байт благодаря @Lukas Rotter
Я чувствую, что он все еще нуждается в игре в гольф ... дайте мне знать в комментариях, если у вас есть какие-либо предложения.
Попробуйте онлайн!
источник
(?i)
игнорирование регистра в регулярных выражениях. Так(?i)[aeiou]
должно и работать.{}
скобки цикла for, так как в нем содержится только одна инструкция.^
чтобы найти количество гласных:z+=w.substring(0,w.replaceAll("(?i)[^aeiou]","").length());
к, 33 байта
Попробуйте онлайн!
источник
Common Lisp, 218 байт
объяснение
источник
sed, 133 (132 + 1) байта
Sed вызывается с
-E
флагом, что, очевидно, означает, что я добавляю один байт.Примечание: я еще не пытался играть в гольф.
Попробуйте онлайн!
источник
Clojure,
9694 байтаНу, эта длина довольно смешная.
mapcat
сохранил два байта.источник
Swift 3, 240 байт
Это функция, которую можно использовать с
f(s:"Input")
. Удивительно, но я не думаю, что это может быть дальше в гольф:Попробуйте это в IBM Sandbox!
источник