From f432bc76a6a8851b8bd2f29a45761a4ec538561f Mon Sep 17 00:00:00 2001 From: SURYAPRATAP SINGH SURYAVANSHI <67123991+suryapratapsinghsuryavanshi@users.noreply.github.com> Date: Fri, 6 Aug 2021 15:45:42 +0530 Subject: [PATCH] add alternative_string_arrange method (#4595) * add alternative_string_arrange method * fix issue * fix one more issue * changed the variable name li to output_list --- strings/alternative_string_arrange.py | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 strings/alternative_string_arrange.py diff --git a/strings/alternative_string_arrange.py b/strings/alternative_string_arrange.py new file mode 100644 index 000000000..d81ddd8a1 --- /dev/null +++ b/strings/alternative_string_arrange.py @@ -0,0 +1,31 @@ +def alternative_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_length if first_str_length > second_str_length else second_str_length + ) + output_list: list = [] + for char_count in range(abs_length): + if char_count < first_str_length: + output_list.append(first_str[char_count]) + if char_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=" ")