题目:有两种特殊字符。***第一种***字符可以用一比特***0***来表示。***第二种***字符可以用两比特(10 或 11)来表示。
现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。
限定字符串范围为:1 <= len(bits) <= 1000 且 bits[i] 总是0 或 1.
python3解题笔记:
class Solution:
def isOneBitCharacter(self, bits: List[int]) -> bool:
#贪心S算法
#根据最后一个字符必定为0,pop弹出最后一个元素
bits.pop()
#再计算pop出1的个数,若为奇数则false,若为偶数则返回true
#自定义变量c用于记录之后连续弹出元素1个数
c = 0
#列表非空进入循环
while(bits!=[]):
data1 = bits.pop()
if(data1!=0):
c+=1
else:
break
if(c%2==0):
return True
else:
return False