在 Python 中檢查一個編碼是否表示一個唯一的二進位制字串


假設我們有一個名為 nums 的陣列表示大小為 k 的二進位制字串的編碼,我們必須檢查給定的編碼是否唯一地查詢一個二進位制字串。此處的編碼具有連續的 1 的計數,這些計數由單個 0 分隔。

因此,如果輸入類似於 nums = [4, 2, 3] k = 11,則輸出將為 True,因為存在大小為 11 的二進位制字串 11110110111。

要解決此問題,我們將遵循以下步驟 -

  • total := nums 中所有元素的總和
  • total := total + nums 的大小 - 1
  • 當總計與 k 相同時返回 true,否則返回 false

讓我們看看以下實現來獲得更好的理解 -

示例

 即時演示

def solve(nums, k):
   total = sum(nums)
   total += len(nums) - 1
   return total == k
nums = [4, 2, 3]
k = 11
print(solve(nums, k))

輸入

[4, 2, 3], 11

輸出

True

更新於: 2020-12-30

96 瀏覽量

開始你的 職業

完成課程後獲得認證

開始
廣告