https://leetcode.com/problems/path-crossing/description/ | Easy |
---|
Дана строка path
, где path[i]
= 'N'
, 'S'
, 'E'
или 'W'
, каждый символ означает перемещение на одну единицу:
• N
— на север,
• S
— на юг,
• E
— на восток,
• W
— на запад.
Вы начинаете в точке (0, 0)
на плоскости и следуете маршруту, заданному строкой path
.
Вернуть true
, если в какой-то момент вы окажетесь в точке, которую уже посещали (маршрут пересекает сам себя), иначе — false
.
class Solution {
fun isPathCrossing(path: String): Boolean {
var x = 0
var y = 0
val visited = mutableSetOf<Pair<Int, Int>>()
visited.add(0 to 0)
for (c in path) {
when (c) {
'N' -> y++
'S' -> y--
'E' -> x++
'W' -> x--
}
if (!visited.add(x to y)) return true
}
return false
}
}