https://leetcode.com/problems/length-of-last-word/description/ Easy

Условие

Дана строка s, состоящая из слов и пробелов. Нужно вернуть длину последнего слова в строке. Слово определяется как максимальная последовательность непробельных символов. Если последнее слово отсутствует, вернуть 0.

Примеры

Input: "Hello World” Output: 5 Explanation: Последнее слово — “World”, его длина — 5.

Input: " fly me to the moon “ Output: 4 Explanation: Последнее слово — “moon”, его длина — 4.

Input: "luffy is still joyboy” Output: 6 Explanation: "luffy is still joyboy”

Решение

fun lengthOfLastWord(s: String): Int {
    // Проверяем, не является ли строка пустой
    if (s.isEmpty()) return 0

    var length = 0
    var index = s.length - 1

    // Пропускаем завершающие пробелы, если они есть
    while (index >= 0 && s[index] == ' ') {
        index--
    }

    // Подсчитываем длину последнего слова
    while (index >= 0 && s[index] != ' ') {
        length++
        index--
    }

    return length
}

Временная сложность

O(n), где n — длина строки. Строка проходится один раз с конца.

Пространственная сложность

O(1), поскольку используется фиксированное количество переменных для вычислений.