ধরুন দুটি খেলোয়ায়ার Amal এবং Bimal। তারা একটি গেম খেলছে। গেমের নিয়ম নিচের মতো:
- দুই খেলোয়ায়ারের একই স্ট্রিং
sআছে - দুইজনের স্ট্রিংয়ের অক্ষর ব্যবহার করে সাবস্ট্রিং বানাতে হবে
Bimal-কে কনসোন্যান্ট দিয়ে শুরু হওয়া ওয়ার্ড বানাতে হবেAmal-কে ভয়েল দিয়ে শুরু হওয়া ওয়ার্ড বানাতে হবে- গেমটি শেষ হবে যখন দুজনই সব সম্ভাব্য সাবস্ট্রিং বানিয়ে ফেলবে
স্কোরিং Криটেরিয়া: একজন খেলোয়ায়ার প্রতিটি সাবস্ট্রিংর স্ট্রিং s-এ থাকার প্রতিটি ঘটনার জন্য ১ পয়েন্ট পাবে। আমাদের এই গেমের বিজেতা এবং তার স্কোর বের করতে হবে।
উদাহরণস্বরূপ, যদি ইনপুট s = "BANANA" হয়, তবে আউটপুট হবে Bimal, 12 কারণ:
| Word : BANANA | |||
| Amal | Bimal (WINNER) | ||
| Substring | Score | Substring | Score |
| A | 3 | B | 1 |
| AN | 2 | N | 2 |
| ANA | 2 | BA | 1 |
| ANAN | 1 | NA | 2 |
| ANANA | 1 | BAN | 1 |
| NAN | 1 | ||
| BANA | 1 | ||
| NANA | 1 | ||
| BANAN | 1 | ||
| BANANA | 1 | ||
| Total 9 | Total 12 | ||
সমাধানের ধাপসমূহ
vowels := {'A','E','I','O','U'}সেটp1 := 0(Bimal),p2 := 0(Amal)- প্রতিটি ইন্ডেক্স
iএবং ক্যারেক্টারcইনwordএর জন্য:- যদি
cভয়েল হয়, তবেp2 += len(word) - i - অন্যথায়
p1 += len(word) - i
- যদি
- যদি
p1 > p2, তবে'Bimal', p1রিটার্ন করুন - অন্যথায় যদি
p2 > p1, তবে'Amal', p2রিটার্ন করুন - অন্যথায়
'Draw'রিটার্ন করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:
def solve(word):
vowels = set('AEIOU')
p1 = 0
p2 = 0
for i, c in enumerate(word):
if c in vowels:
p2 += len(word) - i
else:
p1 += len(word) - i
if p1 > p2:
return 'Bimal', p1
elif p2 > p1:
return 'Amal', p2
else:
return 'Draw'
word = "BANANA"
print(solve(word))
ইনপুট
"BANANA"
আউটপুট
('Bimal', 12)