Python中的1位和2位字符

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

因此,如果输入类似于[1,0,0],则输出将为True,因为对其进行解码的唯一方法是两位字符(10)和一位字符。因此,最后一个字符是一位字符。

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

  • 当位的大小> 1时,执行

  • 当前:=位的第一个元素,然后从位中删除第一个元素

  • 如果当前等于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