假设我们有两个数组m并n包含来自 set 的字符a, b, c , d, e。假设集合中的每个角色都有一个与之相关的成本,考虑成本为a=1, b=3, c=4, d=5, e=7。
例如
m = ['a', 'b', 'c', 'd', 'd', 'e', 'a']
n = ['b', 'b', 'b', 'a', 'c', 'e', 'd']
假设我们想合并m并n形成一个更大的数组s。
数组的一个例子s可能是
s = ['a', 'b', 'c', 'd', 'd', 'e', 'a', 'b', 'b', 'b', 'a', 'c', 'e', 'd']
或者
s = ['b', 'a', 'd', 'd', 'd', 'b', 'e', 'c', 'b', 'a', 'b', 'a', 'c', 'e']
如果有两个或更多相同的字符彼此相邻,则应用等于: 的惩罚number of adjacent characters of the same type * the cost for that character。考虑s上面的第二个例子,它包含一个 sub-array ['d', 'd', 'd']。在这种情况下,3*5将应用惩罚,因为与dis相关的成本5和重复次数d是3。
设计一种动态规划算法,以最小化与 相关的成本s。
有没有人可以分享任何资源、论文或算法来帮助我指明正确的方向?