https://leetcode.com/problems/robot-return-to-origin | Easy |
---|
Дана строка moves
, представляющая последовательность движений робота. Возможные команды: 'U'
(вверх), 'D'
(вниз), 'L'
(влево), 'R'
(вправо). Робот начинается с точки (0, 0)
. Определите, вернется ли робот в исходную точку после выполнения всех движений.
Input:
moves = "UD”Output:
trueExplanation:
Робот возвращается в исходную точку после движения вверх и вниз.
Input:
moves = "LL”Output:
falseExplanation:
Робот не возвращается в исходную точку после движения влево дважды.
fun judgeCircle(moves: String): Boolean {
var x = 0 // Координата по горизонтали
var y = 0 // Координата по вертикали
for (move in moves) {
when (move) {
'U' -> y++ // Движение вверх увеличивает y
'D' -> y-- // Движение вниз уменьшает y
'L' -> x-- // Движение влево уменьшает x
'R' -> x++ // Движение вправо увеличивает x
}
}
return x == 0 && y == 0 // Проверяем, вернулся ли робот в начало
}
O(n), где n — длина строки moves
.
O(1), так как используется только фиксированное количество переменных.