String, LeetCode

344. Reverse String

return s[::-1] will create a new reversed list and s is not changed

from typing import List
class Solution:
    def reverseString(self, s: List[str]) -> None:
        left, right = 0, len(s) - 1
        while left < right:
            s[left], s[right] = s[right], s[left]
            left += 1
            right -= 1

541. Reverse String II

s[i:j] equals [i, j)

from typing import List
class Solution:
    def reverseStr(self, s: str, k: int) -> str:
        s = list(s)
        for i in range(0, len(s), 2 * k):
            s[i: i + k] = reversed(s[i: i + k])
        return ''.join(s)

151. Reverse Words in a String

"""
s = "  hello   world  "
s.split() -> ['hello', 'world']
s.split(' ') -> ['', '', 'hello', '', '', 'world', '', '']
"""
class Solution:
    def reverseWords(self, s: str) -> str:
        s = s.split()
        return ''.join(s[::-1])
        # return ''.join(reversed(s))



Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Binary Tree, LeetCode
  • NVIDIA, LeetCode
  • Stack and Queue, LeetCode
  • HashMap, LeetCode
  • Mock Interview(1), LeetCode