动态规划经典题目-字符串切分
一、题目描述
某种字符串处理语言允许程序员将字符串分为两段。将一个长为n的字符串分为两段耗时n个单位,因为这种操作会涉及旧字符串的复制工作。一个程序员想将字符串分为若干段,他所采用的划分次序会影响到总的用时情况。例如,假设我们想将一个有20个字符的字符串在第3个、第8个和第10个位置之后切断。如果我们按从左到右的次序切分,那么第一次切分耗时20个单位,第二次切分耗时17个单位,第三次切分耗时12个单位,共计49步。如果我们按从右到左的次序切分,那么第一次切分耗时20个单位,第二次切分耗时10个单位,第三次切分耗时8个单位,共计38步.
给出一种动态规划算法,以字符位置的列表作为输入,只能在这些位置之后进行切分,要求在O(n3)时间内算出最少的切分花费并输出。
示例:
输入:partitions = [3, 8, 10] strLength = 20
输出:37
解释:切分顺序依次为10,3,8则为37
切分顺序依次为3,8,10则为49
切分顺序依次为10,8,3则为38
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
评论记录:
回复评论: