From 7a7c0b9661867bc8561780a6521e3ef693a34296 Mon Sep 17 00:00:00 2001 From: Freezed Date: Thu, 16 Jul 2020 08:10:21 +0200 Subject: [PATCH 1/5] Add specs for `reorganize_string.py` --- technical_tests/reorganize_string.py | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 technical_tests/reorganize_string.py diff --git a/technical_tests/reorganize_string.py b/technical_tests/reorganize_string.py new file mode 100644 index 0000000..15cf120 --- /dev/null +++ b/technical_tests/reorganize_string.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +# coding: utf8 + +""" +Author: freezed 2020-07-16 +Licence: `GNU GPL v3` GNU GPL v3: http://www.gnu.org/licenses/ + +This file is part of [`free_zed/mypsb`](https://gitlab.com/free_zed/mypsb/) +""" + + +def main(string, n, sep): + """ + This function reorganize `string` by removing spaces & groups by `n` + characters separated by `sep`. + + :Tests: + >>> main("ab c de fgh ijk", 2, "|") + 'ab|cd|ef|gh|ij|k' + >>> main("ab c de fgh ijk", 3, "|") + 'abc|def|ghi|jk' + """ + answer = "" + + return answer + + +if __name__ == "__main__": + import doctest + + doctest.testmod() From c14c31cde6de94bb93dc99eb2f9f353b033076c0 Mon Sep 17 00:00:00 2001 From: Freezed Date: Thu, 16 Jul 2020 08:55:26 +0200 Subject: [PATCH 2/5] Remove spaces in string --- technical_tests/reorganize_string.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/technical_tests/reorganize_string.py b/technical_tests/reorganize_string.py index 15cf120..8d6d2de 100644 --- a/technical_tests/reorganize_string.py +++ b/technical_tests/reorganize_string.py @@ -20,9 +20,11 @@ def main(string, n, sep): >>> main("ab c de fgh ijk", 3, "|") 'abc|def|ghi|jk' """ - answer = "" - return answer + answer = "" + stack = "".join(string.split(" ")) + + return stack if __name__ == "__main__": From d09dcc6b63816bd0229610d2ec28b13f0c531365 Mon Sep 17 00:00:00 2001 From: Freezed Date: Thu, 16 Jul 2020 09:14:33 +0200 Subject: [PATCH 3/5] Split strings groups in a list --- technical_tests/reorganize_string.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/technical_tests/reorganize_string.py b/technical_tests/reorganize_string.py index 8d6d2de..4d34917 100644 --- a/technical_tests/reorganize_string.py +++ b/technical_tests/reorganize_string.py @@ -22,9 +22,17 @@ def main(string, n, sep): """ answer = "" - stack = "".join(string.split(" ")) + strings = list() - return stack + stack = "".join(string.split(" ")) + steps = round(len(stack) / n) + + while steps != 0: + strings.append(stack[:n]) + stack = stack[n:] + steps -= 1 + + return strings if __name__ == "__main__": From fbdc3815e7009f50171a50cf473110dd514949e6 Mon Sep 17 00:00:00 2001 From: Freezed Date: Thu, 16 Jul 2020 09:20:12 +0200 Subject: [PATCH 4/5] Join strings into one with right separation --- technical_tests/reorganize_string.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/technical_tests/reorganize_string.py b/technical_tests/reorganize_string.py index 4d34917..61bdaf3 100644 --- a/technical_tests/reorganize_string.py +++ b/technical_tests/reorganize_string.py @@ -21,7 +21,6 @@ def main(string, n, sep): 'abc|def|ghi|jk' """ - answer = "" strings = list() stack = "".join(string.split(" ")) @@ -32,7 +31,7 @@ def main(string, n, sep): stack = stack[n:] steps -= 1 - return strings + return sep.join(strings) if __name__ == "__main__": From 5471f30e97139f6f40db729fcb7c815a72a4383a Mon Sep 17 00:00:00 2001 From: Freezed Date: Thu, 16 Jul 2020 09:26:15 +0200 Subject: [PATCH 5/5] Update tests : deliverable --- technical_tests/reorganize_string.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/technical_tests/reorganize_string.py b/technical_tests/reorganize_string.py index 61bdaf3..46e2033 100644 --- a/technical_tests/reorganize_string.py +++ b/technical_tests/reorganize_string.py @@ -17,8 +17,10 @@ def main(string, n, sep): :Tests: >>> main("ab c de fgh ijk", 2, "|") 'ab|cd|ef|gh|ij|k' - >>> main("ab c de fgh ijk", 3, "|") - 'abc|def|ghi|jk' + >>> main("ab c de fgh ijk", 3, "_") + 'abc_def_ghi_jk' + >>> main("ab c de fgh ijk", 4, "/") + 'abcd/efgh/ijk' """ strings = list()