将字符串

时间:2017-10-28 16:55:52

标签: string

我遇到了问题。整体问题陈述很大。我已经解决了它的其他部分。 卡在一块。

给定一个包含一些破折号的字符串(' - ')并且某些字符可以说(' A')。此外,我们给出了成本C来将角色转移到其相邻的位置。我们需要找到所有' A'字符分组。

示例1:A-A - A --- A且成本= 10

将所有' A组分组的最低费用为:80

示例2:AAAA ------ A和成本= 10

将所有' A组分组的最低费用为:60

2 个答案:

答案 0 :(得分:2)

提示:为了尽可能降低成本,可以保留其中一个中位数As(第一个例子中的第2个或第3个,第二个例子中的第3个中的第3个)。使用它,您可以用O(n)计算成本,其中n是字符串的长度或As的数量,以您的输入格式为准。

答案 1 :(得分:2)

我不认为这个问题需要动态编程。 您只需要将所有A移动到中位数A,因为这是所有A之间的总距离最小。

请确保不要移动媒体A.如果中间位置的A向右移动,则其左侧的每个A将需要再移动一步并且每个A&#39 ; s右侧必须减少一步。这应该取消,但你已经添加了一个不需要的步骤。