Данный
- матрица
a
символов изu=" ╶╺╵└┕╹┖┗╴─╼┘┴┶┚┸┺╸╾━┙┵┷┛┹┻╷┌┍│├┝╿┞┡┐┬┮┤┼┾┦╀╄┑┭┯┥┽┿┩╃╇╻┎┏╽┟┢┃┠┣┒┰┲┧╁╆┨╂╊┓┱┳┪╅╈┫╉╋"
- координаты подматрицы , как
x
,y
,w
,h
(слева, сверху, ширина> 1, высота> 1) - толщина
t
1 (как в┌
) или 2 (как в┏
)
визуализировать внутреннюю границу для подматрицы заданной толщины с учетом существующих линий.
x=4;y=1;w=2;h=3;t=2;
a=[' ┌───┐',
'┌┼┐ │',
'│└┼──┘',
'└─┘ ']
// output
r=[' ┌───┐',
'┌┼┐ ┏┪',
'│└┼─╂┨',
'└─┘ ┗┛']
При перезаписи фрагмента строки новая толщина должна быть больше старой толщины и t
.
Речь идет не о входном разборе или найти сложность Колмогорова Юникода, поэтому можно считать a
, u
, x
, y
, w
, h
, t
доступны в качестве переменных. Кроме того, вы можете поместить результат в переменную r
вместо того, чтобы возвращать или выводить его, если r
он того же типа, что и a
.
Если ваш язык вынуждает вас помещать код в функции (C, Java, Haskell и т. Д.), И ваше решение состоит из одной функции, вы можете опустить верхний и нижний колонтитулы функции.
Большой тест:
x=4;y=1;w=24;h=4;t=1;
a=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂─────┘ ││ ┃ ┗━┛',
'┃┃ ││ ┃ ',
'┠╂──┲━━┓ ┏━━━━┓ ││ ┌╂┰┐ ',
'┃┃ ┗━━┩ ┃ ┃ └╆━┓ └╂┸┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
// output
r=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂──┬──┴─────────┼┼─────╂──╄━┛',
'┃┃ │ ││ ┃ │ ',
'┠╂──╆━━┓ ┏━━━━┓ ││ ┌╂┰┐│ ',
'┃┃ ┗━━╃──╂────╂─┴╆━┱──┴╂┸┴┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
0 <= x < x + w < width(a)
и0 <= y < y + h < height(a)
?