【发布时间】:2015-04-30 14:46:23
【问题描述】:
我在Split a string to a string of valid words using Dynamic Programming 发现的另一个 stackoverflow 问题上看到了这个伪代码。
这个问题是一个动态规划问题,看输入字符串是否可以从字典中拆分成单词。
第三行,意思是将一个大小为 [N+1] 的数组 b 设置为所有 false 值?我很确定。但我真的不确定的是第五行。这是一个for循环还是什么?我觉得说“for i in range”的伪代码只有两个值。那句台词在说什么?
def try_to_split(doc):
N = len(doc)
b = [False] * (N + 1)
b[N] = True
for i in range(N - 1, -1, -1):
for word starting at position i:
if b[i + len(word)]:
b[i] = True
break
return b
【问题讨论】:
标签: dynamic dynamic-programming pseudocode