Дано: задана строка 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)