Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.
For example, given s ="leetcode", dict =["leet", "code"].
Return true because"leetcode"can be segmented as"leet code".
给定一个字符串s和一个词典,判断s是否可以被切割成一个或者多个词典中的单词。
比如,给定s="leetcode",dict=["leet","code"],应该返回true,因为"leetcode"可以被切分成"leet"和"code"两个片段。
使用动态规划,假设$f(j)$的真值表示$s[0,j]$是否可以被分词,则:
伪代码如下:
假设s的长度为length,使用array[length+1]代表f(i)到f(n)的真值,则:
初始array[0]=true:
for i in 0 to length:
for j in 0 to i:
if array[j]&&dict.contains(s[j:i]):
array[i]=true;
return array[length]