https://leetcode.com/problems/robot-return-to-origin Easy

Условие

Дана строка moves, представляющая последовательность движений робота. Возможные команды: 'U' (вверх), 'D' (вниз), 'L' (влево), 'R' (вправо). Робот начинается с точки (0, 0). Определите, вернется ли робот в исходную точку после выполнения всех движений.

Примеры

Input: moves = "UD” Output: true Explanation: Робот возвращается в исходную точку после движения вверх и вниз.

Input: moves = "LL” Output: false Explanation: Робот не возвращается в исходную точку после движения влево дважды.

Решение

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), так как используется только фиксированное количество переменных.