มีตัวอักษร 2 ประเภท: 1-bit = 0, 2-bit = 10 หรือ 11 ให้สตริงบิตที่จบด้วย 0 เสมอ ตรวจสอบว่าตัวอักษรสุดท้ายเป็น 1-bit (0) หรือไม่
ตัวอย่าง
[1,0,0] → ถอดรหัสได้: 10 (2-bit) + 0 (1-bit) → ตัวสุดท้ายเป็น 1-bit → True
ขั้นตอนการแก้ปัญหา
- วนจนความยาวบิต > 1
- ดึงบิตแรก (
pop(0)) - ถ้าบิตแรกเป็น 1 → ดึงบิตถัดไปอีก 1 ตัว (รวมเป็น 2-bit)
- ถ้าหมดบิต → คืน
False - จบลูป: คืน
Trueถ้าบิตที่เหลือเป็น 0
การติดตั้งใน Python
class Solution:
def isOneBitCharacter(self, bits):
while len(bits) > 1:
current = bits.pop(0)
if current == 1:
bits.pop(0)
if len(bits) == 0:
return False
return bits[0] == 0
ob = Solution()
print(ob.isOneBitCharacter([1,0,0])) # True
อินพุต / เอาต์พุต
Input: [1,0,0] Output: True