25 lines
799 B
Python
25 lines
799 B
Python
from typing import List
|
|
|
|
DEFAULT_STUDENTS = ['Alice', 'Bob', 'Charlie', 'David',
|
|
'Eve', 'Fred', 'Ginny', 'Harriet',
|
|
'Ileana', 'Joseph', 'Kincaid', 'Larry']
|
|
|
|
PLANT_NAMES = {'V': 'Violets', 'R': 'Radishes', 'G': 'Grass', 'C': 'Clover'}
|
|
|
|
|
|
class Garden:
|
|
|
|
def __init__(self, diagram: str, students: List[str] = DEFAULT_STUDENTS):
|
|
diagram = diagram.split()
|
|
self.plant_db = {}
|
|
|
|
for i, name in enumerate(sorted(students)):
|
|
self.plant_db[name] = ''.join([diagram[0][2*i:2*i + 2],
|
|
diagram[1][2*i:2*i + 2]])
|
|
|
|
def plants(self, name: str) -> List[str]:
|
|
|
|
if name not in self.plant_db.keys():
|
|
return []
|
|
|
|
return [PLANT_NAMES[ch] for ch in self.plant_db[name]]
|