Algorithm DP的递推关系?

Algorithm DP的递推关系?,algorithm,dynamic-programming,text-segmentation,Algorithm,Dynamic Programming,Text Segmentation,假设您有一本包含有效单词的词典 给定一个删除了所有空格的输入字符串,确定该字符串是否由有效单词组成 您可以假设字典是提供O(1)查找的哈希表 请给出此项的递归关系。我在一本书中发现了这个问题,但这本书没有给出答案?这是我为最近的代码高尔夫开始开发的Mathematica代码。 它是一种最小匹配、非贪婪的递归算法。这意味着“笔比剑强大”(不带空格)这句话返回{“笔比剑强大”}:) 输出 twodreamstop = two dreams top onebackstop

假设您有一本包含有效单词的词典

给定一个删除了所有空格的输入字符串,确定该字符串是否由有效单词组成

您可以假设字典是提供O(1)查找的哈希表


请给出此项的递归关系。我在一本书中发现了这个问题,但这本书没有给出答案?

这是我为最近的代码高尔夫开始开发的Mathematica代码。
它是一种最小匹配、非贪婪的递归算法。这意味着“笔比剑强大”(不带空格)这句话返回{“笔比剑强大”}:)

输出

 twodreamstop              = two dreams top
 onebackstop               = one backstop
 butterfingers             = butterfingers
 dependentrelationship     = dependent relationship
 payperiodmatchcode        = pay period match code
 labordistributioncodedesc ~ labor distribution coded es c
 benefitcalcrulecodedesc   ~ benefit c a lc rule coded es c
 psaddresstype             ~ p sad dress type
 ageconrolnoticeperiod     ~ age con rol notice period
 month05                   ~ month 05
 as_benefits               ~ as _ benefits
 fname                     ~ f name

HTH

你在提出算法或找到算法的递归关系方面有困难吗?@Mark:递归关系如果你只是在找到递归关系方面有困难,为什么不在你的帖子中描述算法?这是一种递归关系吗?动态规划递归关系通常是顶级的向下。这个是自下而上的。我不知道它是怎么出现的so@spinning_plate我不认为这是正确的。如果字典中的任何单词是前缀导致有效的分段,则您希望返回true。您将在找到前缀后立即返回,无论它是否是答案。@Programmer-它是如何自下而上的?它从完整字符串并将其分解为子问题?
ss = {"twodreamstop", 
      "onebackstop", 
      "butterfingers", 
      "dependentrelationship", 
      "payperiodmatchcode", 
      "labordistributioncodedesc", 
      "benefitcalcrulecodedesc", 
      "psaddresstype", 
      "ageconrolnoticeperiod",
      "month05", 
      "as_benefits", 
      "fname"}
 twodreamstop              = two dreams top
 onebackstop               = one backstop
 butterfingers             = butterfingers
 dependentrelationship     = dependent relationship
 payperiodmatchcode        = pay period match code
 labordistributioncodedesc ~ labor distribution coded es c
 benefitcalcrulecodedesc   ~ benefit c a lc rule coded es c
 psaddresstype             ~ p sad dress type
 ageconrolnoticeperiod     ~ age con rol notice period
 month05                   ~ month 05
 as_benefits               ~ as _ benefits
 fname                     ~ f name
IsWordValid(S) = for word in dict:
                    if S.startsWith(word) and IsWordValid(S[word.length:])
                          return true
                 return false
IsWordValid(null) = true