Ваша миссия, если вы решите принять ее, состоит в том, чтобы решить, является ли данная входная строка точечной или тяжелой тире.
Строка является точечной, когда ее азбука Морзе содержит больше точек, чем тире. Например, буква E представляет собой одну точку, что означает, что она тяжелая точка.
вход
- Входная строка будет содержать только символы в диапазоне
[a-z]
или[A-Z]
. Вы можете решить , должны ли они все в верхнем регистре, или в нижнем регистре.AAA
Это хорошо,aaa
хорошо,aAa
нет. - Длина входной строки всегда будет не менее 1 символа.
- Вы можете предположить, что входные строки никогда не будут иметь одинакового количества точек и тире.
Выход
Вы должны вернуть Truthy для входных данных, которые содержат больше точечных символов.
Вы должны вернуть Falsy для входных данных, которые содержат больше символов тире.
Изменить: я позволю положительное значение для точки и отрицательное значение для тире.
Контрольные примеры
| input | morse representation | result |
|------------------------------------------------|
| S | ... | Truthy |
| k | -.- | Falsy |
| HELLO | .... . .-.. .-.. --- | Truthy |
| code | -.-. --- -.. . | Falsy |
Ссылка
Это код-гольф . Самый короткий код в байтах побеждает.
Ответы:
APL (Dyalog Extended) ,
2415 байтов SBCS-9 благодаря Ven
Функция анонимного неявного префикса, принимающая заглавные буквы в качестве аргумента.
Попробуйте онлайн!
⌂morse
преобразовать в список строк Морзе∘
, то∊
ε NLIST (расплющить)'.-'⍧
подсчитать количество точек и тира в том , что>/
больше точек , чем тир? (лит. больше, чем сокращение)источник
IBM PC DOS, сборка 8088,
5435 байт-19 байт с использованием разностного метода
разобранное:
объяснение
Реализовано в синтаксисе Intel / MASM как MACRO (в основном функция), используя только 8088-совместимые инструкции. Ввод в виде заглавной строки (или +2 байта для разрешения смешанного регистра), выходной результат Truthy / Falsy
SF == OF
(использоватьJG
илиJL
для проверки).Значения в таблице различий букв хранятся в виде двоичных фрагментов, поэтому всего занимает всего 13 байтов.
Оригинал (54 байта):
объяснение
Реализовано в синтаксисе Intel / MASM как MACRO (в основном функция), используя только 8088-совместимые инструкции. Ввод в виде строки, вывод результата Truthy / Falsy в Carry Flag. Таблица результатов содержит количество штрихов и точек на букву.
Ввод верхнего регистра. Добавьте 2 байта, чтобы взять нижний или смешанный регистр.
Пример тестовой программы (в качестве отдельного исполняемого файла COM для IBM PC DOS)
Пример вывода:
Скачать тестовую программу DD.COM
Или попробуйте онлайн! Я не знаю об интерактивном TIO для прямой ссылки на исполняемый файл DOS, однако вы можете использовать это всего за несколько шагов:
DD Hello
илиDD code
как душе угодноисточник
0000h
для источника AX: fysnet.net/yourhelp.htmXLAT
чтобы делать именно то, для чего предназначено. Если бы вы на самом деле оптимизировали скорость по размеру, вы бы хотели выполнить поиск в формате WORD. Это все еще выигрыш в скорости даже на 8088 с его анемичной 8-битной внешней шиной, потому что вы удваиваете пропускную способность без увеличения размера кода, за исключением однойXCHG
или двух инструкций.XLAT
), даже если требуется 6 байтов, чтобы сделать побитовое смещение вправо на 4 позиции (внутри aLOOP
).Java (JDK) ,
1311241108464 байтаИнтересно, что «точка» тяжелая, а «тире» тяжелая.
Принимает ввод всех заглавных букв как
IntStream
(прокрутите вниз для версии с фактическойString
для дополнительных 8 байтов). Мне очень помогло это в игре: благодаря Expired Data для игры в гольф 20 байтов, Нилу для игры в гольф 26 байтов, Оливье Грегуару за игру в гольф 18 байтов и Кевину Круйссену за 2 байта.Содержит 26 непечатаемых символов в двойных кавычках.
Попробуйте онлайн!
Ungolfed:
Ява (JDK) ,
1311241108472 байтаДля пуристов; принимает вход как
String
. Благодаря просроченным данным для игры в гольф 20 байтов, чтобы Нейлу за гольф 26 байтов и Оливье Грегуару за гольф 10 байтов.Попробуйте онлайн.
Ungolfed:
источник
"35344527512513031462452313".charAt(a-65)-51
?Желе , 21 байт
Попробуйте онлайн!
Как?
источник
05AB1E ,
2221 байтСохраненный байт благодаря Кевину Круйссену
Попробуйте онлайн!
объяснение
это +35344527512513031462452313 сжимается до основания 255.
источник
S
.usdgpsahsoaboutlopezgbidol
v = ord(c)*3%83%8
.aboutlopez
. Затем я искал другие совпадения с тем же множителем и по модулю. (Так что абсолютно не гарантированно быть оптимальным.)C # (интерактивный компилятор Visual C #) , 47 байт
Использует Level River St's 'Волшебную струну'Обязательно проголосуйте и за их решение!
Не каждый день C # превосходит Ruby, Python, Javascript, C, Retina и Perl!
Попробуйте онлайн!
источник
Желе , 23 байта
Попробуйте онлайн!
источник
C (gcc) ,
8482817975 байтовПредполагает все заглавные буквы.
Попробуйте онлайн!
источник
Python 2 ,
737069 байтПопробуйте онлайн!
Только заглавные
-3 байта, благодаря Эрику Аутгольферу
Версия в верхнем и нижнем регистре:
Python 2 ,
7371 байтПопробуйте онлайн!
источник
JavaScript (Node.js) ,
6968 байтОжидает входную строку в верхнем регистре. Возвращает0 или 1 ,
Попробуйте онлайн!
источник
Stax , 20 байт
Запустите и отладьте его
Распакованный, размазанный и прокомментированный, это выглядит так.
Запустите этот
источник
Рубин , 64 байта
Попробуйте онлайн!
Использует 13-байтовую магическую строку, 2 числа,
0..7
закодированные в каждом байте. Вычтите 3 для диапазона-3..4
.Код ASCII для
A
(и такжеN
) взятого по модулю 13 по совпадению равен нулю.источник
Сетчатка 0.8.2 , 51 байт
Попробуйте онлайн! Ссылка включает в себя тестовые случаи. Принимает только верхний регистр (+6 байт для смешанного регистра). Бесстыдно крадет строку @ Арно, но я все равно собираюсь использовать тот же алгоритм. Объяснение:
Изменение каждой буквы в разнице в количестве точек и тире, плюс три, так
O=0
иH=7
.Представьте разницу как число
<
s и три>
s. (К сожалению, я не могу использовать точки, потому что они особенные в регулярных выражениях.)Удалите подходящие пары
<
s и>
s.Проверьте, остались ли еще какие-либо точки.
источник
Bash + coreutils,
6460 байтПопробуйте онлайн!
Принимает строку в нижнем регистре, выводит ноль для ложных значений, ненулевое значение для истинных
объяснение
Использует tr и sed для создания программы постоянного тока, которая выглядит следующим образом (для примера input 'hello'):
источник
<space>3
сz
(удобно, у меня есть 3 элемента в стеке в этой точке!) И еще один байт, заменив кавычки вокруг моей SED программы с единственная обратная косая черта, чтобы избежать&
R ,
7470 байтввод должен быть в нижнем регистре, возвращает ИСТИНА или ЛОЖЬ
Попробуйте онлайн
источник
TI-BASIC (TI-84), 111 байт
Я использовал ту же строку для определения плотности точек, что и некоторые другие ответы.
Программа возвращает truey (
1
), если входная строка тяжелая точка, falsy (0
), если нет.Входная строка должна быть заглавными.
Вклад сохраняется в
Ans
. Вывод сохраняетсяAns
и автоматически распечатывается по завершении программы.Ungolfed:
Пример:
Объяснение:
(TI-BASIC не имеет комментариев, предположим, что это
;
указывает на комментарий)Примечание: количество байтов программы оценивается с использованием значения в [MEM] > [2] > [7] (124 байта) с последующим вычитанием длины имени программы,
CDGF3
(5 байтов) и дополнительных 8 байтов, используемых для Хранение программы:124 - 5 - 8 = 111 байт
источник
Perl 5
-pF
, 53 байтаПопробуйте онлайн!
источник
Фактор , 66 байт
Попробуйте онлайн!
источник
C ++ (скомпилировано с Visual Studio 2017) 171 байт
если мы примем основную программу, которая существует для целей тестирования, а также ее больше.
это безупречный "аккуратный" вариант
принимает все строчные
источник
22
должно быть2
.)"132...
и"112...
стать"353...
и51
является значением ASCII3
c (118 символов) возвращает положительное значение для избыточной точки и отрицательное значение для избыточной тире
ун-golfed
источник
1& ( v > (c[I] - 65))
, которое так же, как и тоv > c[I] - 65
, что я не могу себе представить, никогда не было ложным, поэтому мы могли бы удалить все это, перебирая @ceilingcat для 56 байтMathGolf , 22 байта
Попробуйте онлайн!
Использует тот же метод, что и многие другие ответы, где
ⁿ∩┐↑rⁿ¼~<↔"
представляет магическое число35344527512513031462452313
.источник
Python 2,
9086 байтработал на моем местном с библиотекой Морзе . -4 байта. Спасибо за отзыв @JoKing!
Кроме того, это на 1 байт больше, если это в Python 3.
Python 3, 87 байт
Хотя вопрос предполагает, что число 'и' не будет одинаковым; если они равны, этот код вернет True.
источник
input
вместо,raw_input
если вы хотите ...input
заключать в кавычки строку, так как он пропускает STDIN перед передачей его в программу