From a788e64c237f5cda8923b26c238b7abd947443aa Mon Sep 17 00:00:00 2001 From: Andrew Lorimer Date: Thu, 14 Mar 2024 17:02:26 +1100 Subject: [PATCH] add unique_substrings.py --- unique_substrings.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 unique_substrings.py diff --git a/unique_substrings.py b/unique_substrings.py new file mode 100644 index 0000000..b9edf4c --- /dev/null +++ b/unique_substrings.py @@ -0,0 +1,20 @@ +def generate_unique_substrings(n): + def generate_substrings(n, prefix=""): + if n == 0: + unique_substrings.add(prefix) + else: + for bit in "01": + if prefix[-n:] + bit not in unique_substrings: + generate_substrings(n - 1, prefix + bit) + + unique_substrings = set() + generate_substrings(n) + binary_string = "1" * n # Start with a string of '1's of length n + for i in range(2 ** n - 1): + binary_string += "0" * (n - len(bin(i)[2:])) + bin(i)[2:] + return binary_string + +n = 10 # Change this value to generate unique substrings of different lengths +binary_string = generate_unique_substrings(n) +print("Binary string with unique substrings of length", n, ":", binary_string) + -- 2.49.0