Problem 139: Word Break

https://leetcode.com/problems/word-break/

思路

  • 这道题的思路类似于 Palindrome Partitioning II。不过有不同的一点是,他加入了 maxLength 这个 trick,只比到最大的长度就可以了。

  • word break 要始终保证前面的元素存在一种方法是可以 break 的,这就要求每次都要判断前面的 true 或 false 值。

易错点

  1. 数组长度

    数组长度为s.length() + 1,也就是说从单词的开头到单词的屁股后面都要cut一下

  2. 简化trick

    中间的这两个条件,相辅相成。lastWord不需要比最大的length大,因为再大了字典里就没有这个词了。

  3. 跳过条件

    这里的lastWord是标记位置。后面的s.substring(i - lastWord, i),

  4. 我当时做的时候写的判断条件是:

    这样写会报错,数据溢出;

    正确的写法应该是:

    原因就是 lastword 有可能会溢出的,比如一个字母作为单词的情况,lastword + 1 就溢出了。

    另外,substring 方法:后面的 string 不大写!

Last updated

Was this helpful?