Problem 139: Word Break
Last updated
Last updated
这道题的思路类似于 Palindrome Partitioning II。不过有不同的一点是,他加入了 maxLength 这个 trick,只比到最大的长度就可以了。
word break 要始终保证前面的元素存在一种方法是可以 break 的,这就要求每次都要判断前面的 true 或 false 值。
数组长度
数组长度为s.length() + 1
,也就是说从单词的开头到单词的屁股后面都要cut一下
简化trick
中间的这两个条件,相辅相成。lastWord不需要比最大的length大,因为再大了字典里就没有这个词了。
跳过条件
这里的lastWord
是标记位置。后面的s.substring(i - lastWord, i)
,
我当时做的时候写的判断条件是:
这样写会报错,数据溢出;
正确的写法应该是:
原因就是 lastword 有可能会溢出的,比如一个字母作为单词的情况,lastword + 1 就溢出了。
另外,substring 方法:后面的 string 不大写!