কম্পিউটার

পাইথনে বাইনারি স্ট্রিং হিসাবে স্কোর দেওয়া হয় এমন একটি গেমের বিজয়ী খুঁজুন


ধরুন আমাদের কাছে একটি বাইনারি স্ট্রিং আছে যা একটি ভলিবল ম্যাচের স্কোরের প্রতিনিধিত্ব করে, আমাদের নিম্নলিখিত শর্তগুলির উপর ভিত্তি করে ম্যাচের বিজয়ী খুঁজে বের করতে হবে -

  • দুটি দল একে অপরের সাথে খেলবে এবং যে দলটি প্রথমে 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

  1. পাইথনে একটি প্রদত্ত বাইনারি ট্রিতে বৃহত্তম সম্পূর্ণ সাবট্রি খুঁজুন

  2. পাইথনে একটি প্রদত্ত স্ট্রিং-এ k অনন্য অক্ষর সহ দীর্ঘতম সাবস্ট্রিং খুঁজুন

  3. পাইথনে একটি প্রদত্ত বাইনারি ট্রিতে সবচেয়ে বড় পারফেক্ট সাবট্রি খুঁজুন

  4. পাইথন - একটি প্রদত্ত স্ট্রিং বাইনারি স্ট্রিং কিনা তা পরীক্ষা করুন