Соревнование
Напишите функцию или программу, которая принимает строку, состоящую из одного или нескольких субъективных личных местоимений , разделенных знаком + , в качестве аргумента. На выходе должно быть одно местоимение, которое является результатом отношения, определенного в следующем абзаце.
Конечно, не стесняйтесь редактировать, поскольку вы хотите исправить те грамматические ошибки, которые обязательно присутствуют;)
Это задача для игры в гольф, поэтому выигрывает самый короткий код.
Отношение
Цель этой задачи - перевести в «математике» то, что мы используем ежедневно. Как мы думаем о «Ты и я»? Ну, "Мы", не так ли? Итак, если на входе You+I
вывод, то должна быть строка We
. С более чем двумя местоимениями это должно выглядеть так:
You+He+They
->You
Отношение определяется как эта таблица:
I You He We You They
I I We We We We We
You You You We You You
He He We You They
We We We We
You You You
They They
Проблема «Вы»
Ну, как вы можете видеть, я не являюсь носителем английского языка. В моем языке (итальянском) есть различие между множественным числом you ( voi , по-итальянски) и единственным выражением you ( tu ). Когда я думал об этой задаче, я не думал по-английски, поэтому есть проблема, которую невозможно распознать, если я использую множественное число или форму единственного числа. К счастью (или очевидно?), Ввод / вывод не изменяется в обеих формах, поэтому вы можете использовать один из них, и вы охватите оба случая!
О входе
Ввод всегда будет в форме «Местоимение + Местоимение + Местоимение» ... Местоимения будут иметь первую букву в верхнем регистре, а остальные в нижнем регистре. Плюсы не будут окружены пробелами, только местоимениями. Возможен пустой ввод, а результатом должен быть пустой вывод.
бонус
Небольшой бонус в 15%, если программа справится с двумя новыми местоимениями: Она и Она . Они такие же, как Он, очевидно. Помните, что это отношение рефлексивно, поэтому Она -> Она и Это -> Это. Следовательно, любая комбинация, которая включает только Она, Он или Она, должна выводить Они.
Примеры
You+I -> We
You+He+They -> You
I+You+He+They -> We
They -> They
They+You -> You
You+You+I+You -> We
For Bonus
She -> She
She+He -> They
I+It+He -> We
It+You -> You
источник
I+I=I
", так как может быть только один "I
" от данного оратора. Но не мог "He+He=They
"? Вообщем если скажешьHe
» дважды в этой конструкции, вы имеете в виду два разных мужских предмета, а не один и тот же дважды.Ответы:
Retina,
62 61 56 5352 байтаДальнейшее игра в гольф и объяснение придет позже.
4 шага замены делают следующее:
Попробуйте это онлайн здесь.
3 байта сэкономлено благодаря Мартину Бюттнеру.
источник
.
вместо\+
, так как это единственный символ, разрешенный перед заглавной буквой или послеI
.JavaScript (ES6), 130 байт
объяснение
Тест
Показать фрагмент кода
источник
Perl 5, 67 байт
На самом деле 79 байтов, но есть бонус 15%.
источник
Python
159153 байтаРЕДАКТИРОВАТЬ : Спасибо @ Pietu1998
Это прямой перевод ответа Javascript ES6:
Попробуй здесь
источник
s
не должно быть переменной, и вы можете удалить лишнюю строку и пробел междуfor
иr=
. Кроме того, вы можете проверить, может ли это быть короче как функция.Рубин,
150136131119111 байтБонусная функция: обрабатывает несколько выражений в одной командной строке.
источник