두 명의 플레이어 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
- c가 모음이면
- 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)