Домашни > Man who speaks the ends of words > Решения > Решението на Мария Кукова

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

10 точки общо

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

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

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

OK

Дискусия
Георги Кунчев
17.10.2023 15:59

Виждам, че току що качи нова версия и е възможно да пропуснеш коментарите, които оставих на старото. Виж ги по-долу в историята.
История

n1def beginning(word):n1def measure_len(word):
2    word_len = len(word)2    word_len = len(word)
3    split_len = word_len // 33    split_len = word_len // 3
4    remainder = word_len % 34    remainder = word_len % 3
n5    if remainder == 0:n5    return split_len, remainder
6        return word[0:split_len]6 
7 
8def beginning(word):
9    split_len, remainder = measure_len(word)
7    elif remainder == 2:10    if remainder == 2:
8        return word[0:split_len + 1]11        return word[:split_len + 1]
9    elif remainder == 1:12    else:
10        return word[0:split_len]13        return word[:split_len]
1114
1215
13def middle(word):16def middle(word):
n14    word_len = len(word)n17    split_len, remainder = measure_len(word)
15    split_len = word_len // 3
16    remainder = word_len % 3
17    if remainder == 0:18    if remainder == 0:
18        return word[split_len:split_len * 2]19        return word[split_len:split_len * 2]
19    elif remainder == 2:20    elif remainder == 2:
20        return word[split_len + 1:split_len * 2 + 1]21        return word[split_len + 1:split_len * 2 + 1]
n21    elif remainder == 1:n22    else:
22        return word[split_len:split_len * 2 + 1]23        return word[split_len:split_len * 2 + 1]
2324
2425
25def end(word):26def end(word):
n26    word_len = len(word)n27    split_len, remainder = measure_len(word)
27    split_len = word_len // 3
28    remainder = word_len % 3
29    doubled_split_len = split_len * 228    doubled_split_len = split_len * 2
30    if remainder == 0:29    if remainder == 0:
n31        return word[doubled_split_len::]n30        return word[doubled_split_len:]
32    elif remainder == 2:31    else:
33        return word[doubled_split_len + 1::]32        return word[doubled_split_len + 1:]
34    elif remainder == 1:
35        return word[doubled_split_len + 1::]
3633
3734
38def split_sentence(sentence):35def split_sentence(sentence):
39    result = []36    result = []
n40    words = sentence.split(' ')n37    words = sentence.split()
4138
42    for word in words:39    for word in words:
43        beg_part = beginning(word)40        beg_part = beginning(word)
44        mid_part = middle(word)41        mid_part = middle(word)
45        end_part = end(word)42        end_part = end(word)
n46        new_word = (beg_part, mid_part, end_part)n43        result.append((beg_part, mid_part, end_part))
47        result.append(new_word)
4844
49    return result45    return result
tt46 
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op

f1def beginning(word):f1def beginning(word):
2    word_len = len(word)2    word_len = len(word)
3    split_len = word_len // 33    split_len = word_len // 3
n4    if word_len % 3 == 0:n4    remainder = word_len % 3
5    if remainder == 0:
5        return word[0:split_len]6        return word[0:split_len]
n6    elif word_len % 3 == 2:n7    elif remainder == 2:
7        return word[0:split_len + 1]8        return word[0:split_len + 1]
n8    elif word_len % 3 == 1:n9    elif remainder == 1:
9        return word[0:split_len]10        return word[0:split_len]
1011
1112
12def middle(word):13def middle(word):
13    word_len = len(word)14    word_len = len(word)
14    split_len = word_len // 315    split_len = word_len // 3
n15    if word_len % 3 == 0:n16    remainder = word_len % 3
17    if remainder == 0:
16        return word[split_len:split_len * 2]18        return word[split_len:split_len * 2]
n17    elif word_len % 3 == 2:n19    elif remainder == 2:
18        return word[split_len + 1:split_len * 2 + 1]20        return word[split_len + 1:split_len * 2 + 1]
n19    elif word_len % 3 == 1:n21    elif remainder == 1:
20        return word[split_len:split_len * 2 + 1]22        return word[split_len:split_len * 2 + 1]
2123
2224
23def end(word):25def end(word):
24    word_len = len(word)26    word_len = len(word)
25    split_len = word_len // 327    split_len = word_len // 3
nn28    remainder = word_len % 3
26    doubled_split_len = split_len * 229    doubled_split_len = split_len * 2
n27    if word_len % 3 == 0:n30    if remainder == 0:
28        return word[doubled_split_len::]31        return word[doubled_split_len::]
n29    elif word_len % 3 == 2:n32    elif remainder == 2:
30        return word[doubled_split_len + 1::]33        return word[doubled_split_len + 1::]
n31    elif word_len % 3 == 1:n34    elif remainder == 1:
32        return word[doubled_split_len + 1::]35        return word[doubled_split_len + 1::]
3336
3437
35def split_sentence(sentence):38def split_sentence(sentence):
36    result = []39    result = []
37    words = sentence.split(' ')40    words = sentence.split(' ')
t38    t41 
39    for word in words:42    for word in words:
40        beg_part = beginning(word)43        beg_part = beginning(word)
41        mid_part = middle(word)44        mid_part = middle(word)
42        end_part = end(word)45        end_part = end(word)
43        new_word = (beg_part, mid_part, end_part)46        new_word = (beg_part, mid_part, end_part)
44        result.append(new_word)47        result.append(new_word)
4548
46    return result49    return result
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op