Изолированный символ - это символ (кроме новой строки), который не имеет смежного символа того же типа. Смежные символы могут быть слева, справа вверху или внизу, но не по диагонали. Например, в следующем тексте H
изолирован:
Ybb
YH%
%%%%
Все остальные символы не являются изолированными, потому что у каждого из них есть по крайней мере еще один символ того же типа рядом.
Ваша задача - написать программу, которая принимает строку в качестве входных данных и определяет количество изолированных символов.
счет
Ваш ответ будет оцениваться по двум метрикам. Первый - это количество изолированных символов в вашей программе. Вы должны стремиться минимизировать это. Вторым будет количество байтов в вашей программе. Вы должны минимизировать это также. Размер программы будет действовать как разрыв связи по первому критерию.
Дополнительные правила
Вы должны поддерживать ввод для диапазона печати ascii плюс любые символы, которые вы используете в своей программе.
Вы можете считать разрыв строки либо символом новой строки, либо новой строкой, за которой следует перевод строки.
Вы можете принять участие в любом разумном формате. Это включает в себя список строк.
Тестовые случаи
Ybb
YH%
%%%%
Aaaab
uuu
yyybbb
A
qqWWaaww
источник
Y
ниже.restricted-source
испытание и вообще запретить изолированных персонажей.Ответы:
Python 2 , 0 (
350344314309301298291 байт)Попробуйте онлайн!
-7 байт, спасибо Джо Кингу
источник
Чисто , 0 (
439... 415 байт)-11 благодаря Орджану Йохансену
Наконец, испытание, где я могу набрать 0 с Чистым!
(и, как правило, это плохо при сложностях с исходным кодом!)
Попробуйте онлайн!
Ссылка TIO используется
module main
благодаря тому, что Clean реализован на TIO, ноmodule d
будет работать, если вы назовете файл,d.icl
а неmain.icl
как TIO.Одна из старых строк объяснила (новая версия - это то же самое в другом порядке):
источник
let
сохраняет 11 байтов.d
удобный под рукойJavaScript (ES6), 0 (154 байта)
Сохранено
24 байта благодаря @ ØrjanJohansenПринимает ввод в виде массива строк.
Попробуйте онлайн!
источник
Желе , 0 (
41 2725 байт)Попробуйте онлайн!
Принимает ввод в виде списка строк. Первая строка в коде никогда ничего не делает и предназначена только для минимизации отдельных символов.
источник
MATL , 0 (54 байта)
Входной массив ячеек строк, один для каждой строки:
{'line 1', 'line 2', 'and line 3'}
.Попробуйте онлайн! Или проверьте контрольные примеры и исходный код .
источник
Python 3 , 0 (323 байта)
Попробуйте онлайн!
источник
05AB1E , 0 (101 байт )
Попробуйте онлайн.
Это одна из самых уродливых и самых длинных программ 05AB1E, которые я когда-либо писал ..>.> Эта задача обманчиво сложна в 05AB1E. Я не сомневаюсь, что счетчик байтов может быть, по крайней мере, уменьшен вдвое или даже в три / четыре раза меньше, если использовать другой подход (или даже с похожим подходом), но в настоящее время я не понимаю, как это сделать. Я просто рад, что это работает прямо сейчас .. Если кто-то еще отправит намного более короткий ответ 05AB1E с некоторыми умными трюками, я, вероятно, удалю этот ответ из позора ... xD
Объяснение:
источник
Ruby , оценка 0,
237209 байтПопробуйте онлайн!
источник
JavaScript (Node.js) , 0 (279 байт)
Попробуйте онлайн!
Получите входные данные в виде массива строк.
источник