Домашни > Man who speaks the ends of words > Решения > Решението на Николай Георгиев

Резултати
10 точки от тестове
0 точки от учител

10 точки общо

12 успешни теста
0 неуспешни теста
Код

 1def get_word_fragments(word):
 2    remainder = len(word) % 3
 3    substring_length = len(word) // 3
 4
 5    if remainder == 1:
 6        return (
 7            word[0:substring_length],
 8            word[substring_length:substring_length * 2 + 1],
 9            word[substring_length * 2 + 1:substring_length * 3 + 1],
10        )
11    elif remainder == 2:
12        return (
13            word[0:substring_length + 1],
14            word[substring_length + 1:substring_length * 2 + 1],
15            word[substring_length * 2 + 1:substring_length * 3 + 2],
16        )
17    else:
18        return (
19            word[0:substring_length],
20            word[substring_length:substring_length * 2],
21            word[substring_length * 2:substring_length * 3],
22        )
23    
24def beginning(word):
25    return get_word_fragments(word)[0]
26
27def middle(word):
28    return get_word_fragments(word)[1]
29
30def end(word):
31    return get_word_fragments(word)[2]
32
33def split_sentence(sentence):
34    words = sentence.split()
35    fragmented_words = []
36
37    for word in words:
38        fragmented_words.append(get_word_fragments(word))
39    
40    return fragmented_words

............
----------------------------------------------------------------------
Ran 12 tests in 0.000s

OK

Дискусия
Георги Кунчев
15.10.2023 10:49

Нямам забележки по кода, но не смятам, че е добра идея да дефинираш цялата функционалност в една функция, а трите функции, които искаме, само да играят ролята на посредник. Прекалено много логика на едно място, без никаква логика в останалите функцийки. Все пак, и твоят вариант си има своите плюсове, така че тук мнението ми е по-скоро субективно. Не очаквам да го променяш, а просто споделям впечатления.
История
Това решение има само една версия.