Фон
Эта задача является частью кард -массивов 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
- Замените двойное пространство на одиночное пространство.
- Удалите ведущие и следственные пространства.
- Задний ход.
class Solution: def reverseWords(self, s: str) -> str: s.replace(" ", " ").rstrip().lstrip() string = s.split() string.reverse() return ' '.join(string)
Участие и выводы из вышеупомянутого фрагмента
- У нас в жестко -кодировании 2 пространства. Хардкодирование в программировании никогда не должно быть сделано.
- Если количество последовательных пространств увеличивается. Код потерпит неудачу.
- Использование встроенного метода Ready () может появиться в качестве ярлыка.
Обновленное решение преодолеть недостатки, перечисленные выше.
- S.LStrip (). RStrip (). Split (). Заботится о нескольких пространствах, ведущих пространствах, пространстве для сцепления.
- Замените 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”