LeetCode: Length of Last Word
----- Условие ----- Требуется найти длину последнего слова в строке. Слово - это максимальная подстрока, состоящая только из символов, не являющихся пробелами.
----- Решение ----- Сначала убираем пробелы по краям строки. Далее проходимся в цикле по строке, начиная с конца. Проверяем, равен ли символ пустой строке. Если равен, то возвращаем длину строки минус текущий индекс и минус один (s.length - i - 1).
Если символ не был найден, то возвращаем длину строки (уже без пробелов по краям).
Есть короткое решение с использованием lastIndexOf, но не факт, что оно принимается на собеседованиях.
Сложность алгоритма по времени O(n), где n - длина строки, сложность по памяти O(1).
----- Код ----- /** * @param {string} s * @return {number} */ const lengthOfLastWord = function(s) { s = s.trim();
for (let i = s.length - 1; i >= 0; i–) { if (s[i] === ’ ') return s.length - i - 1; }
return s.length; };