สมมติว่าเรามีอาร์เรย์ของอักขระ เราต้องย้อนกลับสตริงโดยไม่ต้องใช้ช่องว่างเพิ่มเติม ดังนั้นหากสตริงเป็นเหมือน ['H', 'E', 'L', 'L', 'O'] ผลลัพธ์จะเป็น ['O', 'L', 'L', 'E', ' H']
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ใช้ตัวชี้สองตัวเพื่อเริ่มต้น =0 และสิ้นสุด =ความยาวของสตริง – 1
- สลับอักขระตัวแรกและตัวสุดท้าย
- เพิ่มจุดเริ่มต้น 1 และลดจุดสิ้นสุด 1
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
class Solution(object): def reverseString(self, s): """ :type s: List[str] :rtype: None Do not return anything, modify s in-place instead. """ start = 0 end = len(s)-1 while start<end: s[start],s[end] = s[end],s[start] start+=1 end-=1string_1 = ["H","E","L","L","O"] ob1 = Solution() ob1.reverseString(string_1) print(string_1)
อินพุต
String = ["H","E","L","L","O"]
ผลลัพธ์
["O","L","L","E","H"]