假设我们有两个特殊字符。第一个字符可以用一位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