subdivide and repeat
Here you can do it with a recursive function - and how I approached the design:
- Scan a row
susing an indexi - If the index goes beyond the bounds, return the base result,
[[s]]otherwise ... - a
" " , A B , . - A: , .
- B: ,
# split :: String -> [[String]]
def split (s, i = 0):
if len(s) == i:
return [[s]]
elif s[i] == " ":
# Part A # Part B
return [[s[0:i]] + acc for acc in split(s[i + 1:])] + split(s, i + 1)
else:
return split(s, i + 1)
print(split("i am eating pizza"))
# [ ['i', 'am', 'eating', 'pizza'],
# , ['i', 'am', 'eating pizza']
# , ['i', 'am eating', 'pizza']
# , ['i', 'am eating pizza']
# , ['i am', 'eating', 'pizza']
# , ['i am', 'eating pizza']
# , ['i am eating', 'pizza']
# , ['i am eating pizza']
# ]