Python程式檢查是否可以獲得一對數字和任意數量的三元組數字
假設我們有一個數字字串 s。我們必須檢查是否有一些排列,我們可以有一對相同的字元,字串的其餘部分形成任意數量的相同字元的三元組。
因此,如果輸入類似於 s = "21133123",則輸出將為 True,因為有兩個 2 可以形成 "22" 作為對,"111"、"333" 作為兩個三元組。
為了解決這個問題,我們將遵循以下步驟:
d := 一個包含 s 中存在的每個元素頻率的列表
對於 d 中的每個 k,執行以下操作:
d[k] := d[k] - 2
如果對於 d 中的所有 i,d[i] 模 3 為 0,則
返回 True
d[k] := d[k] + 2
返回 False
示例
讓我們看看以下實現以獲得更好的理解
from collections import Counter
def solve(s):
d = Counter(s)
for k in d:
d[k] -= 2
if all(d[i] % 3 == 0 for i in d):
return True
d[k] += 2
return False
s = "21133123"
print(solve(s))輸入
"21133123"
輸出
True
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP