ภาพรวม
โจทย์แบ่งสตริงเป็นส่วนย่อยขนาด n ตัวอักษร ชิ้นสุดท้ายอาจสั้นกว่า n
ตัวอย่าง
อินพุต: s="abcdefghijklmn", n=4
เอาต์พุต: ['abcd', 'efgh', 'ijkl', 'mn']
โค้ด Python (While Loop)
class Solution:
def solve(self, s, n):
i = 0
f = []
while i < len(s):
f.append(s[i:i+n])
i += n
return f
ob = Solution()
print(ob.solve("abcdefghijklmn", 4))
วิธี Pythonic (List Comprehension)
def split_string(s, n):
return [s[i:i+n] for i in range(0, len(s), n)]
ใช้ textwrap (Standard Library)
import textwrap
textwrap.wrap("abcdefghijklmn", 4) # ['abcd', 'efgh', 'ijkl', 'mn']
ความซับซ้อน
- เวลา: O(len(s))
- พื้นที่: O(len(s)/n) สำหรับลิสต์ผลลัพธ์
ผลลัพธ์
['abcd', 'efgh', 'ijkl', 'mn']