Python 中的 1 位和 2 位字符


假设我们有两个特殊字符。第一个字符可以用一个比特 0 来表示。第二个字符可以用两个比特(10 或 11)来表示。因此,如果我们有一个由多个比特表示的字符串。我们必须检查最后一个字符是否必须是一个比特字符。给定的字符串总是以零结尾。

因此,如果输入为 [1,0,0],则输出为 True,因为解码它的唯一方法是两比特字符 (10) 和一个比特字符 (0)。所以,最后一个字符是一个比特字符。

要解决这个问题,我们将遵循以下步骤 -

  • 当比特的长度 > 1 时,执行
  • current := 比特串中的第一个元素,然后从比特串中删除第一个元素
  • 如果 current 与 1 相同,则
    • 从比特串中删除第一个元素
  • 如果比特串的长度等于 0,则
    • 返回 False
  • 当 bits[0] 等于 0 时返回 true,否则返回 false

让我们看看以下实现,以获得更好的理解 -

示例

 实时演示

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

更新日期:2020 年 7 月 4 日

473 次浏览

开启您的职业

完成课程即可获得认证

开始
广告