Найдите длину последнего словаPython

Программы на Python
Ответить
Anonymous
 Найдите длину последнего слова

Сообщение Anonymous »


Я работаю над LeetCode 58. Длина последнего слова.

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

Слово — это максимальная подстрока, состоящая только из символов, не являющихся пробелами.

Пример:

Ввод: s = "Отправь меня на Луну"

Выход: 4

Пояснение: последнее слово — «луна» длиной 4.

Это можно тривиально решить следующим образом:

return len(s.split()[-1]) Предполагая, что вопрос задается на собеседовании, принято накладывать искусственные ограничения, так, скажем, встроенный split или splitlines не может быть использовал. Нет проблем.

из оператора импорта метода, not_ из импорта itertools take while, drop while def lengthOfLastWord(s: str) -> int: пробел = вызов метода("isspace") слово = take while(not_(пробел), drop while(пробел, s[::-1])) вернуть len(список(слово)) Это дает мне следующую ошибку:

TypeError: объект bool не подлежит вызову вернуть len(список(слово)) Я, конечно, могу использовать лямбды вместо methodcaller, но, зная, что мне нужно использовать ту же функцию, isspace, приведенная выше попытка кажется более элегантной. В таком языке, как Haskell, я мог бы просто использовать isSpace и not . isSpace напрямую. Python — это не Haskell, как мне добиться того же эффекта?

Обратите внимание, что существуют и другие способы решения этого вопроса, например использование обратного цикла for. Я не ищу другие или лучшие варианты, я просто ищу, как заставить приведенный выше код работать, отрицая вызываемый объект, возвращаемый methodcaller.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»