Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

แบ่งสตริงเป็นชิ้นขนาด N ใน Python

ภาพรวม

โจทย์แบ่งสตริงเป็นส่วนย่อยขนาด 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']