ধরুন অমল ও বিমল নামে দুজন খেলোয়াড় আছে। তারা একটা খেলা খেলছে। খেলার নিয়ম নিম্নরূপ -
-
উভয় খেলোয়াড়ের একই স্ট্রিং আছে।
-
তাদের উভয়কেই s অক্ষর ব্যবহার করে সাবস্ট্রিং তৈরি করতে হবে।
-
বিমলকে ব্যঞ্জনবর্ণ দিয়ে শুরু করে শব্দ তৈরি করতে হয়।
-
অমলকে স্বর দিয়ে শুরু করে শব্দ তৈরি করতে হয়।
-
উভয় খেলোয়াড়ই সম্ভাব্য সব সাবস্ট্রিং তৈরি করলে খেলাটি শেষ হবে।
এখন স্কোরিংয়ের মানদণ্ডটি হল:একজন খেলোয়াড় স্ট্রিং s-এ সাবস্ট্রিংয়ের প্রতিটি ঘটনার জন্য 1 পয়েন্ট অর্জন করে। আমাদের এই গেমের বিজয়ী এবং তার স্কোর খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি s ="BANANA" এর মত হয়, তাহলে আউটপুট হবে বিমল, 12 কারণ
শব্দ :BANANA | |||
আমল | Bimal(WINNER) | ||
সাবস্ট্রিং | স্কোর | সাবস্ট্রিং৷ | স্কোর |
A | 3 | B | 1 |
AN | 2 | N | 2 |
ANA | 2 | BA | 1 |
ANAN | 1 | NA | 2 |
ANANA | 1 | ব্যান৷ | 1 |
| | NAN | 1 |
| | BANA | 1 |
| | NANA | 1 |
| | BANAN | 1 |
| | কলা | 1 |
মোট 9 | মোট 12 |
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- স্বরবর্ণ :=স্বরবর্ণের একটি সেট
- p1 :=0
- p2 :=0
- প্রতিটি সূচক i এবং অক্ষর c শব্দের জন্য, করুন
- যদি c একটি স্বরবর্ণ হয়, তাহলে
- p2 :=p2 + শব্দের আকার - i
- অন্যথায়,
- p1 :=p1 + শব্দের আকার - i
- যদি c একটি স্বরবর্ণ হয়, তাহলে
- যদি p1> p2, তাহলে
- রিটার্ন 'বিমল', p1
- অন্যথায় যখন p2> p1, তারপর
- 'আমল' প্রত্যাবর্তন, p2
- অন্যথায়,
- 'ড্র' ফেরত দিন
উদাহরণ
আসুন আরও ভালভাবে বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি
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)