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