Где я сейчас?
Учитывая строку d
, содержащую только буквы NSWE
, определите координаты, которые я путешествовал (слева направо, жадно потребляя) и окончательную координату, где я живу.
Правила чтения координат слева направо:
- Если следующий символ
N
илиS
:- Если символ после
N
илиS
является другимN
илиS
:- Потребляйте только первое
N
илиS
. - Выход
[0,1]
дляN
- Выход
[0,-1]
дляS
- Потребляйте только первое
- Если символ после
N
илиS
являетсяW
илиE
:- Потребляйте и
N
илиS
иW
или илиE
. - Выход
[1,1]
или[-1,1]
дляNE
иNW
, соответственно. - Выход
[1,-1]
или[-1,-1]
дляSE
иSW
, соответственно.
- Потребляйте и
- Если символ после
- Если символ является
E
илиW
не предшествуетS
илиN
:- Потреблять
E
илиW
. - Выход
[1,0]
заE
. - Выход
[-1,0]
заW
.
- Потреблять
Работал пример
NSWE
[0,1] (North N)
[-1,-1] (South-west SW)
[1,0] (East E)
[0,0] (N+SW+E = Didn't actually move)
Обратите внимание, что это может быть в любом формате, вот другие примеры правильного вывода:
[[0,1],[-1,-1],[1,0],[0,0]]
[[[0,1],[-1,-1],[1,0]],[0,0]]
"0,1\n0,-1\n-1,0\n1,0\n0,0"
И т.д...
Больше примеров
SWSENNESWNE
[-1,-1]
[1,-1]
[0,1]
[1,1]
[-1,-1]
[1,1]
[1,0]
NNEESESSWWNW
[0,1]
[1,1]
[1,0]
[1,-1]
[0,-1]
[-1,-1]
[-1,0]
[-1,1]
[0,0]
NENENEE
[1,1]
[1,1]
[1,1]
[1,0]
[4,3]
NEN
[1,1]
[0,1]
[1,2]
EEE
[1,0]
[1,0]
[1,0]
[3,0]
правила
- Вы можете выводить в любом удобном формате, который не нарушает лазейки.
- Вы должны потреблять с жадностью,
NWE
никогдаN,W,E
, это всегдаNW,E
.- Это относится к:
SW*
,SE*
,NW*
,NE*
. - Вы потребляете слева направо, жадно.
- Это относится к:
- Это код-гольф , выигрывает самый низкий счетчик байтов.
[4, 3]
или около того, сделает немного легче увидеть, что происходит в результатах теста.
1
, -1j
, и (-1+1j)
т.д. допустимый формат вывода?
NE
это просто N+E
не должно иметь значение?