1def get_split_index(word):
2 w_len = len(word)
3
4 if w_len%3 == 2:
5 return (w_len + 1) // 3
6
7 return w_len // 3
8
9def beginning(word):
10 return word[:get_split_index(word)]
11
12def middle(word):
13 split_index = get_split_index(word)
14 return word if len(word) == 1 else word[split_index:-split_index]
15
16def end(word):
17 return '' if len(word) == 1 else word[-get_split_index(word):]
18
19def split_word(word):
20 return beginning(word), middle(word), end(word)
21
22def split_sentence(sentence):
23 return [split_word(word) for word in sentence.split()]
............
----------------------------------------------------------------------
Ran 12 tests in 0.000s
OK
| f | 1 | def get_split_index(word): | f | 1 | def get_split_index(word): |
| 2 | w_len = len(word) | 2 | w_len = len(word) | ||
| 3 | 3 | ||||
| n | 4 | if(w_len%3 == 2): | n | 4 | if w_len%3 == 2: |
| 5 | return (w_len+1)//3 | 5 | return (w_len + 1) // 3 | ||
| 6 | 6 | ||||
| t | 7 | return w_len//3 | t | 7 | return w_len // 3 |
| 8 | 8 | ||||
| 9 | def beginning(word): | 9 | def beginning(word): | ||
| 10 | return word[:get_split_index(word)] | 10 | return word[:get_split_index(word)] | ||
| 11 | 11 | ||||
| 12 | def middle(word): | 12 | def middle(word): | ||
| 13 | split_index = get_split_index(word) | 13 | split_index = get_split_index(word) | ||
| 14 | return word if len(word) == 1 else word[split_index:-split_index] | 14 | return word if len(word) == 1 else word[split_index:-split_index] | ||
| 15 | 15 | ||||
| 16 | def end(word): | 16 | def end(word): | ||
| 17 | return '' if len(word) == 1 else word[-get_split_index(word):] | 17 | return '' if len(word) == 1 else word[-get_split_index(word):] | ||
| 18 | 18 | ||||
| 19 | def split_word(word): | 19 | def split_word(word): | ||
| 20 | return beginning(word), middle(word), end(word) | 20 | return beginning(word), middle(word), end(word) | ||
| 21 | 21 | ||||
| 22 | def split_sentence(sentence): | 22 | def split_sentence(sentence): | ||
| 23 | return [split_word(word) for word in sentence.split()] | 23 | return [split_word(word) for word in sentence.split()] |
| Legends | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||
| f | 1 | def get_split_index(word): | f | 1 | def get_split_index(word): |
| 2 | w_len = len(word) | 2 | w_len = len(word) | ||
| n | 3 | return int((w_len+0.5*(w_len%3))//3) # it's not practical, but it is cool :) | n | 3 | |
| 4 | if(w_len%3 == 2): | ||||
| 5 | return (w_len+1)//3 | ||||
| 6 | |||||
| 7 | return w_len//3 | ||||
| 4 | 8 | ||||
| 5 | def beginning(word): | 9 | def beginning(word): | ||
| 6 | return word[:get_split_index(word)] | 10 | return word[:get_split_index(word)] | ||
| 7 | 11 | ||||
| 8 | def middle(word): | 12 | def middle(word): | ||
| 9 | split_index = get_split_index(word) | 13 | split_index = get_split_index(word) | ||
| n | 10 | return word if len(word)==1 else word[split_index:-split_index] | n | 14 | return word if len(word) == 1 else word[split_index:-split_index] |
| 11 | 15 | ||||
| 12 | def end(word): | 16 | def end(word): | ||
| n | 13 | return '' if len(word)==1 else word[-get_split_index(word):] | n | 17 | return '' if len(word) == 1 else word[-get_split_index(word):] |
| 14 | 18 | ||||
| 15 | def split_word(word): | 19 | def split_word(word): | ||
| 16 | return beginning(word), middle(word), end(word) | 20 | return beginning(word), middle(word), end(word) | ||
| 17 | 21 | ||||
| 18 | def split_sentence(sentence): | 22 | def split_sentence(sentence): | ||
| t | 19 | return [split_word(word) for word in sentence.split(' ')] | t | 23 | return [split_word(word) for word in sentence.split()] |
| Legends | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||