Python 中的 1 位和 2 位字符

pythonserver side programmingprogramming更新于 2023/11/10 0:09:00

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

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

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

  • while size of bits > 1,执行
  • current := bits 的第一个元素,然后从 bits 中删除第一个元素
  • 如果 current 与 1 相同,则
    • 从 bits 中删除第一个元素
  • 如果 bits 的大小与 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

相关文章