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
广告