Рубрики
Без рубрики

День-15 обратные слова в строке

Фон Эта задача является частью кард -массивов LeetCode и струн. Под т … меткой Python, вызов.

Фон

Эта задача является частью кард -массивов LeetCode и струн. Под подзаголовком.

Постановка задачи

Учитывая входную строку, отмените строковое слово по слову.

Пример 1
Input: "the sky is blue"
Output: "blue is sky the"
Пример 2
Input: "  hello world!  "
Output: "world! hello"
Explanation: Your reversed string should not contain leading or trailing spaces.
Пример 3
Input: "a good   example"
Output: "example good a"
Explanation: You need to reduce multiple spaces between two words to a single space in the reversed string.

Примечание:

  1. Слово определяется как последовательность не пространственных символов.
  2. Входная строка может содержать ведущие или следственные пространства. Тем не менее, ваша обратная строка не должна содержать ведущих или следственных пространств.
  3. Вам необходимо уменьшить несколько пробелов между двумя словами в одно пространство в обратной строке.
Решение подход 1
  1. Замените двойное пространство на одиночное пространство.
  2. Удалите ведущие и следственные пространства.
  3. Задний ход.
class Solution:
    def reverseWords(self, s: str) -> str:
        s.replace("  ", " ").rstrip().lstrip()
        string = s.split()
        string.reverse()
        return ' '.join(string)
Участие и выводы из вышеупомянутого фрагмента
  1. У нас в жестко -кодировании 2 пространства. Хардкодирование в программировании никогда не должно быть сделано.
  2. Если количество последовательных пространств увеличивается. Код потерпит неудачу.
  3. Использование встроенного метода Ready () может появиться в качестве ярлыка.
Обновленное решение преодолеть недостатки, перечисленные выше.
  1. S.LStrip (). RStrip (). Split (). Заботится о нескольких пространствах, ведущих пространствах, пространстве для сцепления.
  2. Замените React () с реализацией обратного.
class Solution:
    def reverseWords(self, s: str) -> str:
        string = s.lstrip().rstrip().split()
        start = 0
        end = len(string) - 1
        while start < end:
            temp = string[start]
            string[start] = string[end]
            string[end] = temp
            start += 1
            end -= 1

        return ' '.join(string)

PS: Последний раздел поста. Это начинается с изучения недостатков вышеупомянутого фрагмента, обновляется после того, как увидел первый комментарий.

Оригинал: “https://dev.to/mridubhatnagar/day-15-reverse-words-in-a-string-3foj”