В этом испытании вы подсчитаете, насколько велика ваша земля.
Напишите программу или функцию, которая рассчитывает размер вашей земли с учетом стены, которую вы построили. Вам дана непустая входная строка, содержащая набор из 4 различных символов на ваш выбор, которые представляют четыре направления «вверх», «вниз», «влево» и «вправо» (я буду использовать ^ v < >в этом испытании). Невозможно сделать поворот на 180 градусов ( <>или ^v), но вы можете пересечь стену.
То, как вы «захватываете» землю, окружает ее стеной. Сама стена также считается частью вашей земли. Несколько примеров сделают это более понятным. Я буду использовать oдля земли, которая была окружена стеной, xдля самой стены, иS для начальной точки стены, просто чтобы проиллюстрировать, как строится стена. Выход должен быть общий размер вашей земли (число o, xи Sв случаях испытания ниже).
Input: >>>>
Land: Sxxxx
Output: 5
Input: <<<^^^>>>vv
Land:
xxxx
xoox
xoox
xxxS
Output: 16
Input: <<<^^^>>>v
Land:
xxxx
x x
x
xxxS
Output: 11
Input: <
Land: xS
Output: 2
Input: >>>>>>vvvvvvvvv<<<<<^^^^>>>>>>>>vvvvvvvvvv<<<<<<<<<<<<<<<^^^^^^^^^>>>vvvvvv<<<<<
Land:
Sxxxxxx
x
x
x
x
xxxxxxxxx
xxxx xoooox x
xoox xoooox x
xoox xoooox x
xoox xxxxxx x
xoox x
xoox x
xxxxxx x
x x
x x
xxxxxxxxxxxxxxxx
Output: 101
Input: >>vvvv>>^^<<<<^
Land:
Sxx
xox
xxxxx
xox
xxx
Output: 17
Input: <<^^^>>>vv
Land:
xxxx
x x
x x
xxS
Output: 11 <- Note, diagonal edges do not close the "loop"
Разъяснения:
- Вам не нужно рисовать стену, вывод должен быть только целым числом
- Формат ввода не является обязательным. Вы можете взять строку с
<>^v, список цифр,(1, -1, i, -i)список символовABCDи т. Д.
Это код-гольф, поэтому самый короткий код на каждом языке выигрывает . Помните, что объяснения важны даже на «обычных» языках!