ภาพรวม
โจทย์จำลองการแบ่งหน้าหนังสือ: กำหนดลิสต์คำ (book), หน้า (page, 0-indexed), ขนาดหน้า (page_size) คืนลิสต์คำในหน้านั้น ถ้าหน้าเกินคืนลิสต์ว่าง
ตัวอย่าง
book = ["hello", "world", "programming", "language", "python", "c++", "java"]
page = 1, page_size = 3
หน้า 0: ดัชนี 0-2 → hello, world, programming
หน้า 1: ดัชนี 3-5 → language, python, c++
เอาต์พุต: ['language', 'python', 'c++']
โค้ด Python
class Solution:
def solve(self, book, page, page_size):
l = page * page_size
return book[l:l+page_size]
ob = Solution()
book = ["hello", "world", "programming", "language", "python", "c++", "java"]
page = 1
page_size = 3
print(ob.solve(book, page, page_size))
รายละเอียด
- Python slicing
book[l:r]จัดการ out-of-bounds เอง (คืน [] ถ้า l ≥ len) - ไม่ต้องเช็คเงื่อนไขพิเศษ
- เวลา O(page_size), พื้นที่ O(page_size)
ผลลัพธ์
['language', 'python', 'c++']