File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -5,4 +5,25 @@ def decode_string(s: str) -> str:
55 Dekóduje zakódovaný řetězec ve formátu k[encoded_string],
66 např. "3[a]2[bc]" → "aaabcbc".
77 """
8-
8+ while '[' in s :
9+ pos_left_bracket = s .index ('[' )
10+ pos_right_bracket = s .index (']' )
11+ # check for nested brackets
12+ if '[' in s [pos_left_bracket + 1 :]:
13+ pos_left_bracket2 = s .index ('[' , pos_left_bracket + 1 )
14+ else :
15+ pos_left_bracket2 = len (s ) + 1
16+ # no nested brackets
17+ if pos_right_bracket < pos_left_bracket2 :
18+ pos_num = pos_left_bracket - 1
19+ num = ''
20+ while s [pos_num ].isdigit ():
21+ num = s [pos_num ] + num
22+ pos_num += - 1
23+ s = s [:pos_left_bracket - len (num )] + int (
24+ num ) * s [pos_left_bracket + 1 :pos_right_bracket ] + s [pos_right_bracket + 1 :]
25+ # nested brackets
26+ else :
27+ s = s [:pos_left_bracket + 1 ] + \
28+ decode_string (s [pos_left_bracket + 1 :])
29+ return s
You can’t perform that action at this time.
0 commit comments