Cho mảng ký tự. Đảo ngược chuỗi không dùng bộ nhớ thêm. Ví dụ: ['H','E','L','L','O'] → ['O','L','L','E','H'].
Giải pháp
Hai con trỏ:
- start = 0, end = len(s)-1.
- Trong khi start < end: hoán đổi s[start], s[end]; start++, end--.
Ví dụ
Triển khai Python:
class Solution(object):
def reverseString(self, s):
start = 0
end = len(s)-1
while start<end:
s[start],s[end] = s[end],s[start]
start+=1
end-=1
string_1 = ["H","E","L","L","O"]
ob1 = Solution()
ob1.reverseString(string_1)
print(string_1) Đầu vào
String = ["H","E","L","L","O"]
Đầu ra
["O","L","L","E","H"]