27 lines
796 B
Python
27 lines
796 B
Python
# HumanEval/17
|
|
# Loki Mode Multi-Agent Solution
|
|
# Attempts: 1
|
|
# Passed: True
|
|
|
|
from typing import List
|
|
|
|
|
|
def parse_music(music_string: str) -> List[int]:
|
|
""" Input to this function is a string representing musical notes in a special ASCII format.
|
|
Your task is to parse this string and return list of integers corresponding to how many beats does each
|
|
not last.
|
|
|
|
Here is a legend:
|
|
'o' - whole note, lasts four beats
|
|
'o|' - half note, lasts two beats
|
|
'.|' - quater note, lasts one beat
|
|
|
|
>>> parse_music('o o| .| o| o| .| .| .| .| o o')
|
|
[4, 2, 1, 2, 2, 1, 1, 1, 1, 4, 4]
|
|
"""
|
|
if not music_string:
|
|
return []
|
|
|
|
note_beats = {'o': 4, 'o|': 2, '.|': 1}
|
|
tokens = music_string.split()
|
|
return [note_beats[token] for token in tokens if token] |