मान लीजिए कि हमारे पास वॉलीबॉल मैच के स्कोर का प्रतिनिधित्व करने वाला एक बाइनरी स्ट्रिंग है, हमें निम्नलिखित शर्तों के आधार पर मैच के विजेता को ढूंढना होगा -
-
दो टीमें एक-दूसरे के साथ खेलती हैं और जो टीम पहले 15 अंक हासिल करती है, वह विजेता होगी, सिवाय इसके कि जब दोनों टीमें 14 अंकों तक पहुंच गई हों।
-
जब दोनों टीमें उस समय 14 अंक तक पहुंच जाएंगी तो दो अंकों की बढ़त बनाए रखने वाली टीम विजेता होगी।
दिए गए बाइनरी स्ट्रिंग से, 0 टीम को एक अंक खोने का प्रतिनिधित्व कर रहा है और 1 इंगित करता है कि टीम एक अंक जीतती है। हमें यह देखना होगा कि टीम मैच जीती थी या हार गई थी।
इसलिए, यदि इनपुट स्कोर ="1001100110111001110011011" जैसा है, तो आउटपुट टीम जीती जाएगी
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
Score_cnt :=[0,0]
-
मैं के लिए 0 से लेकर स्कोर के आकार तक, करें
-
pos:=ASCII of(score[i]) - ASCII of('0')
-
Score_cnt[pos] :=Score_cnt[pos] + 1
-
अगर Score_cnt[0] n और Score_cnt[1] − n-1 के समान है, तो
-
वापसी "टीम हार गई"
-
-
अगर Score_cnt[1] n के समान है और Score_cnt[0]
-
वापसी "टीम जीती"
-
-
अगर Score_cnt[0] n-1 के समान है और Score_cnt[1] n-1 के समान है, तो
-
Score_cnt[0] :=0
-
Score_cnt[1] :=0
-
लूप से बाहर आएं
-
-
-
मैं :=मैं + 1
-
क्योंकि मैं स्कोर के आकार की सीमा में हूं, ऐसा करें
-
pos:=ASCII of(score[i]) - ASCII of('0')
-
Score_cnt[pos] :=Score_cnt[pos] + 1
-
अगर |score_cnt[0] - Score_cnt[1]| 2 के समान है, तो
-
अगर Score_cnt[0]> Score_cnt[1], तो
-
वापसी "टीम हार गई"
-
-
अन्यथा,
-
वापसी "टीम जीती"
-
-
-
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def predictWinner(score, n): score_cnt = [0,0] for i in range(len(score)): pos = ord(score[i]) - ord('0') score_cnt[pos] += 1 if (score_cnt[0] == n and score_cnt[1] < n - 1): return "Team lost" if (score_cnt[1] == n and score_cnt[0] < n - 1): return "Team won" if (score_cnt[0] == n - 1 and score_cnt[1] == n - 1): score_cnt[0] = 0 score_cnt[1] = 0 break i += 1 for i in range(i, len(score)): pos = ord(score[i]) - ord('0') score_cnt[pos] += 1 if (abs(score_cnt[0] - score_cnt[1]) == 2): if (score_cnt[0] > score_cnt[1]): return "Team lost" else: return "Team won" score = "1001010101111011101111" n = 15 print(predictWinner(score, n))
इनपुट
"1001010101111011101111"
आउटपुट
Team won