ধরুন আমাদের কাছে একটি বাইনারি স্ট্রিং আছে যা একটি ভলিবল ম্যাচের স্কোরের প্রতিনিধিত্ব করে, আমাদের নিম্নলিখিত শর্তগুলির উপর ভিত্তি করে ম্যাচের বিজয়ী খুঁজে বের করতে হবে -
-
দুটি দল একে অপরের সাথে খেলবে এবং যে দলটি প্রথমে 15 পয়েন্ট স্কোর করবে তারাই বিজয়ী হবে যখন উভয় দল 14 পয়েন্টে পৌঁছেছে।
-
সেই সময়ে যখন উভয় দল 14 পয়েন্টে পৌঁছেছে তখন যে দল দুটি পয়েন্টের লিড বজায় রাখবে তারাই বিজয়ী হবে।
প্রদত্ত বাইনারি স্ট্রিং থেকে, 0 দলকে একটি পয়েন্ট হারানোর প্রতিনিধিত্ব করছে এবং 1 দলটি একটি পয়েন্ট জিতেছে। দল ম্যাচ জিতেছে নাকি হেরেছে তা আমাদের যাচাই করতে হবে।
সুতরাং, যদি ইনপুটটি স্কোর ="1001100110111001110011011" এর মতো হয়, তাহলে আউটপুটটি হবে দল জয়ী
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
score_cnt :=[0,0]
-
আমি 0 থেকে স্কোরের আকারের রেঞ্জের জন্য, করুন
-
pos :=ASCII of(স্কোর[i]) - ASCII of('0')
-
score_cnt[pos] :=score_cnt[pos] + 1
-
যদি স্কোর_সিএনটি[0] n এবং স্কোর_সিএনটি[1] − n - 1 এর মত হয়, তাহলে
-
"দল হারিয়েছে"
ফেরত দিন
-
-
যদি স্কোর_সিএনটি[1] n এবং স্কোর_সিএনটি[0]
-
ফিরুন "টিম জিতেছে"
-
-
যদি স্কোর_সিএনটি[0] n - 1 এবং স্কোর_cnt[1] n - 1 এর সমান হয়, তাহলে
-
score_cnt[0] :=0
-
score_cnt[1] :=0
-
লুপ থেকে বেরিয়ে আসুন
-
-
-
i :=i + 1
-
আমি স্কোরের আকারের পরিসীমার জন্য, কর
-
pos :=ASCII of(স্কোর[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