From 69dd8c1988ffa307d48053ba39d40a328052b184 Mon Sep 17 00:00:00 2001 From: Rishikesh Maddhesiya <130288820+Rishikesh63@users.noreply.github.com> Date: Thu, 3 Oct 2024 16:55:54 +0530 Subject: [PATCH 1/2] Create seating_arrangements.py --- backtracking/seating_arrangements.py | 46 ++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 backtracking/seating_arrangements.py diff --git a/backtracking/seating_arrangements.py b/backtracking/seating_arrangements.py new file mode 100644 index 000000000000..805796661a75 --- /dev/null +++ b/backtracking/seating_arrangements.py @@ -0,0 +1,46 @@ +def generate_seating_arrangement(n): + """ + Generates the nth binary sequence where no two '1's are adjacent. + + Args: + n (int): The position of the sequence to retrieve. + + Returns: + str: The nth valid binary sequence. + + Examples: + >>> generate_seating_arrangement(4) + '101' + >>> generate_seating_arrangement(6) + '1001' + >>> generate_seating_arrangement(9) + '10001' + """ + k2 = 2 + k1 = ["0"] * (n + 1) + k1[1] = "1" + a1 = 1 + + while k2 < (n + 1): + if k1[a1][-1] == "0": + k1[k2] = k1[a1] + "0" + k2 += 1 + if k2 >= (n + 1): + break + k1[k2] = k1[a1] + "1" + k2 += 1 + if k2 >= (n + 1): + break + a1 += 1 + elif k1[a1][-1] == "1": + k1[k2] = k1[a1] + "0" + k2 += 1 + if k2 >= (n + 1): + break + a1 += 1 + return k1[n] + +# Doctest +if __name__ == "__main__": + import doctest + doctest.testmod() From 4be12d547502649b2a8688a3f3c2e0a58c1540a5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 11:29:51 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- backtracking/seating_arrangements.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/backtracking/seating_arrangements.py b/backtracking/seating_arrangements.py index 805796661a75..3bc4eae3a6ec 100644 --- a/backtracking/seating_arrangements.py +++ b/backtracking/seating_arrangements.py @@ -1,13 +1,13 @@ def generate_seating_arrangement(n): """ Generates the nth binary sequence where no two '1's are adjacent. - + Args: n (int): The position of the sequence to retrieve. - + Returns: str: The nth valid binary sequence. - + Examples: >>> generate_seating_arrangement(4) '101' @@ -40,7 +40,9 @@ def generate_seating_arrangement(n): a1 += 1 return k1[n] + # Doctest if __name__ == "__main__": import doctest + doctest.testmod()