Найти тему
Недалёкий разбор

Структуры - Алгоритмы - LeetCode - 58. Length of Last Word

Дано: задана строка s, состоящая из слов и пробелов, верните длину последнего слова в строке.

Пример:
Вход: s = "Hello World"
Выходные данные: 5
Пояснения: Последнее слово - "World" длиной 5.

Ограничения:
1 <= s.length <= 10^4
s состоит только из английских букв и пробелов ' '.
В s будет хотя бы одно слово.

Решение(Python):

1) С использованием списка

def lengthOfLastWord(s: str) -> int:
list = s.split()
return len(list[-1])

Преобразуем в список и возвращаем последний элемент списка.

Временная сложность: Преобразование в список дает нам сложность O(n)
Пространственная сложность: хранение списка даёт нам O(n)

1) С использованием дополнительной переменной.

def lengthOfLastWord(s: str) -> int:
result = 0
for i in range(len(s) - 1, -1, -1):
if s[i] != " ":
result += 1
elif result:
return result
return result

Проходим строку из конца в начало, если элемент не пробел прибавляем единицу и целочисленной переменной result, когда находим пробел, возвращаем переменную result.

Временная сложность: Цикл даёт нам сложность O(n)

Пространственная сложность: хранение переменной даёт нам O(1)