Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

미니언 게임의 승자의 점수와 이름을 찾는 Python 프로그램

<시간/>

두 명의 플레이어 Amal과 Bimal이 있다고 가정합니다. 그들은 게임을 하고 있다. 게임 규칙은 다음과 같습니다 -

  • 두 플레이어 모두 동일한 문자열을 가집니다.

  • 둘 다 s의 문자를 사용하여 부분 문자열을 만들어야 합니다.

  • 비말은 자음으로 시작하는 단어를 만들어야 합니다.

  • 아말은 모음으로 시작하는 단어를 만들어야 합니다.

  • 두 플레이어가 가능한 모든 부분 문자열을 만들면 게임이 종료됩니다.

이제 점수 기준은 다음과 같습니다. 플레이어는 문자열 s에서 부분 문자열이 나타날 때마다 1점을 얻습니다. 우리는 이 게임의 승자와 그의 점수를 찾아야 합니다.

따라서 입력이 s ="BANANA"와 같으면 출력은 Bimal, 12가 됩니다.

단어:BANANA
아말
바이멀(승자)
하위 문자열
점수
하위 문자열
점수

3
B
1
AN
2
N
2
ANA
2
BA
1
아난
1
NA
2
아나나
1
금지
1


NAN
1


바나
1


나나
1


바나나
1


바나나
1
총 9개
총 12개

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 모음 :=모음 모음
  • p1 :=0
  • p2 :=0
  • 워드의 각 인덱스 i와 문자 c에 대해 do
    • c가 모음이면
      • p2 :=p2 + 단어 크기 - i
    • 그렇지 않으면
      • p1 :=p1 + 단어 크기 - i
  • p1> p2이면
    • '비말', 1페이지 반환
  • 그렇지 않으면 p2> p1일 때
    • '아말' 반환, p2
  • 그렇지 않으면
    • '그리기' 반환

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다.

def solve(word):모음 =set('AEIOU') p1 =0 p2 =0 for i, c in enumerate(word):if c in 모음:p2 +=len(word) - i else:p1 +=len(word) - i if p1> p2:'Bimal' 반환, p1 elif p2> p1:'Amal' 반환, p2 else:return 'Draw'word ="BANANA"print(solve(word)) 

입력

"바나나"

출력

('비말', 12)