কম্পিউটার টিউটোরিয়াল

পাইথনে বাইনারি স্ট্রিং থেকে ভলিবল ম্যাচের বিজয়ী খুঁজুন


সমস্যা বিবরণ

একটি বাইনারি স্ট্রিং দেওয়া আছে যা ভলিবল ম্যাচের স্কোর প্রকাশ করে। 0 মানে টিম পয়েন্ট হারালো, 1 মানে টিম পয়েন্ট জিতলো। বিজয়ী নির্ধারণের নিয়ম:

  1. যে টিম প্রথমে ১৫ পয়েন্ট পাবে সে জিতবে, তবে দুটো টিমই ১৪ পয়েন্ট পেয়ে গেলে এই নিয়ম কাজ করবে না।
  2. যদি দুটো টিমই ১৪ পয়েন্ট পায়, তবে যে টিম ২ পয়েন্টের লিড বজায় রাখবে সে জিতবে।

ইনপুট স্ট্রিং "1001100110111001110011011" হলে আউটপুট হবে Team won।

সমাধানের ধাপসমূহ

  1. score_cnt = [0, 0] শুরু করুন।
  2. প্রথম লুপে প্রতিটি ক্যারেক্টার প্রসেস করুন:
    • pos = ord(score[i]) - ord('0')।
    • score_cnt[pos]++।
    • যদি টিম ০ প্রথমে ১৫ পায় এবং টিম ১ ১৪-এর নিচে থাকে, "Team lost" রিটার্ন করুন।
    • যদি টিম ১ প্রথমে ১৫ পায় এবং টিম ০ ১৪-এর নিচে থাকে, "Team won" রিটার্ন করুন।
    • যদি দুটো টিমই ১৪ পায়, তবে score_cnt রিসেট করুন এবং লুপ ব্রেক করুন।
  3. দ্বিতীয় লুপে বাকি ক্যারেক্টার প্রসেস করুন:
    • প্রতিটি পয়েন্ট যোগ করুন।
    • যদি দুটো টিমের পার্থক্য ২ হয়, তবে লিডের উপর ভিত্তি করে "Team won" বা "Team lost" রিটার্ন করুন।

পাইথন কোড উদাহরণ

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))  # আউটপুট: Team won

ইনপুট

"1001010101111011101111"

আউটপুট

Team won
  1. পাইথনে একটি বাইনারি ট্রিতে সবচেয়ে বড় কমপ্লিট সাবট্রি খুঁজুন

  2. পাইথনে দিয়ে k সংখ্যক یونিক ক্যারেক্টার সম্বলিত দীর্ঘতম সাবস্ট্রিং খুঁজে বের করা

  3. পাইথনে বাইনারি ট্রি-র সর্বোচ্চ পারফেক্ট সাবট্রির আকার নির্ণয়

  4. পাইথনে চেক করা: দেওয়া স্ট্রিং বাইনারি স্ট্রিং কিনা