मान लीजिए कि हमारे पास वॉलीबॉल मैच के स्कोर का प्रतिनिधित्व करने वाला एक बाइनरी स्ट्रिंग है, हमें निम्नलिखित शर्तों के आधार पर मैच के विजेता को ढूंढना होगा -
-
दो टीमें एक-दूसरे के साथ खेलती हैं और जो टीम पहले 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