मान लीजिए कि हमारे पास एक संख्यात्मक स्ट्रिंग है। हमें यह जांचना होगा कि क्या कोई ऐसी व्यवस्था है जहां हम एक ही वर्ण की एक जोड़ी रख सकते हैं और शेष स्ट्रिंग समान वर्णों के किसी भी संख्या में त्रिक बनाते हैं।
इसलिए, यदि इनपुट s ="21133123" जैसा है, तो आउटपुट ट्रू होगा, क्योंकि "22" को युग्म के रूप में और "111", "333" को दो ट्रिपल के रूप में बनाने के लिए दो 2s हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
d :=एक सूची जिसमें s में मौजूद प्रत्येक तत्व की बारंबारता होती है
-
d में प्रत्येक k के लिए, करें
-
d[k] :=d[k] - 2
-
अगर d[i] mod 3, d में सभी i के लिए 0 है, तो
-
सही लौटें
-
-
d[k] :=d[k] + 2
-
-
झूठी वापसी
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
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