forked from keon/algorithms
-
Notifications
You must be signed in to change notification settings - Fork 1
/
make_sentence.py
34 lines (28 loc) · 926 Bytes
/
make_sentence.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
"""
For a given string and dictionary, how many sentences can you make from the
string, such that all the words are contained in the dictionary.
eg: for given string -> "appletablet"
"apple", "tablet"
"applet", "able", "t"
"apple", "table", "t"
"app", "let", "able", "t"
"applet", {app, let, apple, t, applet} => 3
"thing", {"thing"} -> 1
"""
count = 0
def make_sentence(str_piece, dictionarys):
global count
if len(str_piece) == 0:
return True
for i in range(0, len(str_piece)):
prefix, suffix = str_piece[0:i], str_piece[i:]
if ((prefix in dictionarys and suffix in dictionarys)
or (prefix in dictionarys
and make_sentence(suffix, dictionarys))):
count += 1
return True
if __name__ == "__main__":
dictionarys = ["", "app", "let", "t", "apple", "applet"]
word = "applet"
make_sentence(word, dictionarys)
print count