Skip to content

Latest commit

 

History

History
19 lines (13 loc) · 1.21 KB

README.md

File metadata and controls

19 lines (13 loc) · 1.21 KB

动态规划

对于字符串“leetcode”:

  • 如果字符串"l"存在于字典中,则字符串"leetcode"能否由字典中的单词构成取决于字符串“eetcode”能否由字典中的单词构成
  • 如果字符串“l”不在字典中,则判断字符串“le”是否字典中,如果在,则字符串“leetcode”能否由字典中的单词构成取决于字符串“etcode”能否由字典中的单词构成
  • 如果字符串“le”也不在字典中,那么判断字符串"lee"是否在字典中,如果在,则字符串“leetcode”能否由字典中的单词构成取决于字符串"tcode"能否由字典中的单词构成
  • ...

令state[i]表示字符串中从下标i开始到结尾的子串能否由字典中的单词构成。对于"leetcode":

  • state[0]就表示“leetcode”能否由字典中的单词构成
  • state[2]就表示“leetcode”能否由字典中的单词构成
  • state[8]就表示""能够由字典中的单词构成

假设substr(i,j)表示字符串s中下标i到下标j的子串,那么state[i] = dict.contain(substr(i,j)) && state[j + 1]

  • 时间复杂度:O(n^2)(n为字符串长度)
  • 空间复杂度:O(n + m)(n为字符串长度,m为字典中单词数)