- Notifications
You must be signed in to change notification settings - Fork 46.7k
/
Copy pathalternative_string_arrange.py
31 lines (29 loc) · 1.02 KB
/
alternative_string_arrange.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
defalternative_string_arrange(first_str: str, second_str: str) ->str:
"""
Return the alternative arrangements of the two strings.
:param first_str:
:param second_str:
:return: String
>>> alternative_string_arrange("ABCD", "XY")
'AXBYCD'
>>> alternative_string_arrange("XY", "ABCD")
'XAYBCD'
>>> alternative_string_arrange("AB", "XYZ")
'AXBYZ'
>>> alternative_string_arrange("ABC", "")
'ABC'
"""
first_str_length: int=len(first_str)
second_str_length: int=len(second_str)
abs_length: int= (
first_str_lengthiffirst_str_length>second_str_lengthelsesecond_str_length
)
output_list: list= []
forchar_countinrange(abs_length):
ifchar_count<first_str_length:
output_list.append(first_str[char_count])
ifchar_count<second_str_length:
output_list.append(second_str[char_count])
return"".join(output_list)
if__name__=="__main__":
print(alternative_string_arrange("AB", "XYZ"), end=" ")