定义状态:d[i]表示从i位置开始删除最少的字符使字符串可用所给的单词表示。状态转移方程:d[i] = min{d[i], d[i +1] + 1, d[s] + s - i - le},其中d[i]为len - i, d[i + 1] + 1表示当前字符删除后的最优值,d[s] + s - i - j表示从当前位置匹配单词X后的最优值, s为匹配单词X后i的位置,le为X的长度,s - i - j表示匹配单词X需要删除字符的个数。
程序代码:
定义状态:d[i]表示从i位置开始删除最少的字符使字符串可用所给的单词表示。状态转移方程:d[i] = min{d[i], d[i +1] + 1, d[s] + s - i - le},其中d[i]为len - i, d[i + 1] + 1表示当前字符删除后的最优值,d[s] + s - i - j表示从当前位置匹配单词X后的最优值, s为匹配单词X后i的位置,le为X的长度,s - i - j表示匹配单词X需要删除字符的个数。
程序代码: