717.1ビットと2ビット文字(Python)

837 ワード

タイトル
難易度:★☆☆☆タイプ:配列
特殊文字は2種類あります.第1の文字は、1ビット0で表すことができる.2番目の文字は、2ビット(10または11)で表すことができる.
いくつかのビットからなる文字列を与えます.最後の文字が必ず1ビットの文字であるかどうかを尋ねます.指定された文字列は常に0で終了します.
注意1<=len(bits)<=1000.bits[i]は常に0または1である.

例1入力:bits=[1,0,0]出力:True解釈:唯一の符号化方式は1つの2ビット文字と1つの1ビット文字である.最後の文字は1ビット文字です
例2入力:bits=[1,1,1,0]出力:False解釈:一意の符号化方式は2ビット文字と2ビット文字である.最後の文字は1ビット文字ではありません
に答える
この問題は理解する必要がある.
配列に1がある場合、1とその後の数字は第2のビットで表さなければならず、配列中のゼロについては第1のビットで表すことができる.
class Solution:
    def isOneBitCharacter(self, bits):

        p = 0
        while p < len(bits) - 2:    #              ,     
            if bits[p] == 0:
                p += 1              #   0 1   
            else:
                p += 2              #   1 2   

        return bits[p] == 0

質問やアドバイスがあれば、コメントエリアへようこそ~