Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python tìm người thắng và điểm số trong trò chơi Minion Game


Hai người chơi Amal (từ nguyên âm) và Bimal (từ phụ âm) tạo tất cả các substring từ chuỗi s. Điểm của mỗi substring = số lần xuất hiện trong s. Tìm người thắng và điểm số.

Ví dụ: s = "BANANA" → Bimal thắng 12 điểm.

Quan sát quan trọng

Không cần sinh tất cả substring. Với ký tự tại vị trí i, có len(s) - i substring bắt đầu bằng ký tự đó. Chỉ cần cộng dồn len(s) - i cho mỗi ký tự nguyên âm/phụ âm.

Ví dụ mã nguồn

def solve(word):
    vowels = set('AEIOU')
    p1 = 0  # Bimal (phụ âm)
    p2 = 0  # Amal (nguyên âm)
    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))  # ('Bimal', 12)

Đầu vào / Đầu ra

Input:  "BANANA"
Output: ('Bimal', 12)