I am trying to take a string, between length 1 and 10, and output all possible ways of breaking up the string into consecutive substrings that are of sizes 1, 2, or 3. For example:
Input: 123456
Slice the integer into individual characters, then proceed through to find combinations.
The code would return all of the following arrays.
[1, 2, 3, 4, 5, 6]
[12, 3, 4, 5, 6]
[1, 23, 4, 5, 6]
[1, 2, 34, 5, 6]
[1, 2, 3, 45, 6]
[1, 2, 3, 4, 56]
[12, 34, 5, 6]
[12, 3, 45, 6]
[12, 3, 4, 56]
[1, 23, 45, 6]
[1, 2, 34, 56]
[1, 23, 4, 56]
[12, 34, 56]
[123, 4, 5, 6]
[1, 234, 5, 6]
[1, 2, 345, 6]
[1, 2, 3, 456]
[123, 456]
[1, 23, 456]
[1, 234, 56]
[12, 345, 6]
[12, 3, 456]
[123, 4, 56]
[123, 45, 6]
I’m trying to do this in ruby. Thanks!
Here’s a working function. May be not optimal as I didn’t spend much time on it.
EDIT: Made it a bit shorter and the length is now passed as second parameter to function for flexibility.