Я всегда хотел заключить текст в #
s, но мне сложно понять, что я окружил, поэтому в этом задании вы напишете программу, которая сделает это
Примеры
Входы / выходы разделены новой строкой.
###
#a#
###
a
#
#a#
#
a
###
# a #
# b c #
#######
a
b c
ABCDHIJ
E####GK
F# M #L
# N#O
P####
M
N
###A###
#C#B#o#
#d###e#
# go#
###
C o
d e
go
спекуляция
#
s это то, что «окружает» блок текста#
всегда будет рядом друг с другом (в том числе по диагонали)#
всегда будет формировать замкнутую форму- Там будет только одна
#
форма - В случае вогнутой формы отверстия должны быть заполнены пробелами.
- Пробелы должны быть сохранены в выводе
#
s и там вы идете ... а потом стало трудно.\n
после каждой строки ввода и передаваться в качестве параметра функции моей программе или как?_M_\n___N
(с использованием подчеркивания вместо пробелов из-за проблем с форматированием), в то время как в примерах abc и Codego выходные данные также включают пробельные символы, где # были во входных данных. Если должен быть напечатан только текст, окруженный символом #, то вывод примера abc должен быть_a_\n_b_c_
(вместо__a_\n_b_c
), а вывод примера Codego должен бытьCo\nde\n_go
(вместоC___o\nd___e\n__go
).MN
пример. как не должно было быть лишнего пробела после М.Ответы:
Perl,
144138132129128127126124 байтаВключает +2 для
-p0
Код предполагает,
\0
что не является допустимым символом ввода (по крайней мере, внутри#
).Запустите с помощью ввода на STDIN:
surround.pl
:Код работает как есть, но замените их
\0
и\n
их буквальными версиями для заявленной оценки. Обратите внимание, чтов конце строки есть пробел . Код зацикливается слишком много раз, поэтому вам, возможно, придется ждать около 30 секунд для вывода.
объяснение
Я собираюсь сделать заливку с
\0
остановленным#
извне в ортогональных направлениях. После этого я срежу по#
бокам и заменю все, что осталось пробелами. Чтобы избежать необходимости обрабатывать все направления в заливке, я буду многократно вращать целевую область и выполнять заливку только справа налево.На данный момент, например,
будет заменен на:
В основном все столбцы и строки, которые непосредственно не граничат с внутренней частью, были обрезаны. Все оставшиеся внешние символы были заменены на \ 0. Вверху и справа есть дополнительный слой \ 0. Так что все, что осталось, это очистить:
источник
#
разделами. пожалуйста, проверьте мой сеанс bash: codepad.org/YbCzB4O4Javascript,
485 464 427 417 396390 байтДа. Я старался. И хотя у меня
485байтов, я выигрываю, потому что никто больше не хотел отвечать на этот вопрос. Итак, ха!И еще, я хорошо знаю, что я мог бы играть в гольф с такими нагрузками, я просто устал в данный момент ... ну, теперь я нахожусь в 396 Благодаря Конору за большую часть игры в гольф ...: D
источник
y=z=0