สมมติว่ามีผู้เล่นสองคน Amal และ Bimal พวกเขากำลังเล่นเกม กฎของเกมมีดังนี้ −
-
ผู้เล่นทั้งสองมีสตริงเดียวกัน s.
-
ทั้งคู่ต้องสร้างสตริงย่อยโดยใช้ตัวอักษรของ s
-
Bimal ต้องสร้างคำที่ขึ้นต้นด้วยพยัญชนะ
-
อามาลต้องสร้างคำที่ขึ้นต้นด้วยสระ
-
เกมจะจบลงเมื่อผู้เล่นทั้งคู่สร้างสตริงย่อยที่เป็นไปได้ทั้งหมดแล้ว
ตอนนี้เกณฑ์การให้คะแนนเป็นดังนี้:ผู้เล่นจะได้รับ 1 แต้มสำหรับการเกิดขึ้นของสตริงย่อยในสตริง s แต่ละครั้ง เราต้องหาผู้ชนะในเกมนี้และสกอร์ของเขาให้ได้
ดังนั้นหากอินพุตเป็นเหมือน s ="BANANA" ผลลัพธ์จะเป็น Bimal 12 เพราะ
Word :BANANA | |||
Amal | Bimal(ผู้ชนะ) | ||
สตริงย่อย | คะแนน | สตริงย่อย | คะแนน |
A | 3 | B | 1 |
AN | 2 | ไม่ | 2 |
ANA | 2 | BA | 1 |
ANAN | 1 | NA | 2 |
ANANA | 1 | BAN | 1 |
| | NAN | 1 |
| | BANA | 1 |
| | นานา | 1 |
| | กล้วย | 1 |
| | BANANA | 1 |
รวม 9 | รวม 12 |
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- สระ :=ชุดของสระ
- p1 :=0
- p2 :=0
- สำหรับแต่ละดัชนี i และอักขระ c ในคำ ให้ทำ
- ถ้า c เป็นสระแล้ว
- p2 :=p2 + ขนาดคำ - i
- มิฉะนั้น
- p1 :=p1 + ขนาดคำ - i
- ถ้า c เป็นสระแล้ว
- ถ้า p1> p2 แล้ว
- ส่งคืน 'Bimal', p1
- มิฉะนั้น เมื่อ p2> p1 แล้ว
- ส่งคืน 'Amal', p2
- มิฉะนั้น
- คืน 'วาด'
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def Solve(word):สระ =set('AEIOU') p1 =0 p2 =0 for i, c in enumerate(word):if c ในสระ: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))ก่อน>อินพุต
"กล้วย"ผลลัพธ์
('Bimal', 12)