add unique_substrings.py
authorAndrew Lorimer <andrew@lorimer.id.au>
Thu, 14 Mar 2024 06:02:26 +0000 (17:02 +1100)
committerAndrew Lorimer <andrew@lorimer.id.au>
Thu, 14 Mar 2024 06:02:26 +0000 (17:02 +1100)
unique_substrings.py [new file with mode: 0644]
diff --git a/unique_substrings.py b/unique_substrings.py
new file mode 100644 (file)
index 0000000..b9edf4c
--- /dev/null
@@ -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)
+