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

อักขระ 1 บิตและ 2 บิตใน Python


สมมติว่าเรามีอักขระพิเศษสองตัว อักขระตัวแรกสามารถแสดงด้วย 0 บิตหนึ่งตัว และอักขระตัวที่สองสามารถแสดงด้วยสองบิต เช่น (10 หรือ 11) ดังนั้น ถ้าเรามีสตริงที่แสดงด้วยหลายบิต เราต้องตรวจสอบว่าอักขระตัวสุดท้ายต้องเป็นอักขระหนึ่งบิตหรือไม่ สตริงที่กำหนดจะลงท้ายด้วยศูนย์เสมอ

ดังนั้น หากอินพุตเป็น [1,0,0] เอาต์พุตจะเป็น True เนื่องจากวิธีเดียวที่จะถอดรหัสคืออักขระสองบิต (10) และอักขระหนึ่งบิต (0) ดังนั้น อักขระตัวสุดท้ายคืออักขระหนึ่งบิต

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ในขณะที่ขนาดของบิต> 1 ทำ
  • current :=องค์ประกอบแรกของบิต จากนั้นลบองค์ประกอบแรกออกจากบิต
  • ถ้ากระแสเท่ากับ 1 แล้ว
    • ลบองค์ประกอบแรกออกจากบิต
  • ถ้าขนาดของบิตเท่ากับ 0 แล้ว
    • คืนค่าเท็จ
  • คืนค่า จริง เมื่อ bits[0] เท่ากับ 0 มิฉะนั้น เท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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]))

อินพุต

[1,0,0]

ผลลัพธ์

True