【发布时间】:2018-10-17 15:26:31
【问题描述】:
一个字符串称为另一个字符串的子字符串,如果它可以通过从该字符串的开头和结尾删除一些(可能为零)个字符来从该字符串中获得。
例如,abc、ab 和 c 是字符串 abc 的子字符串,而 ac 和 d 不是。
让我们将字符串的回文计数定义为它的回文子串的数量。
例如,字符串aaa 的回文计数是 6,因为它的所有子字符串都是回文。并且字符串abc 的回文数是 3,因为只有它的长度为 1 的子字符串是回文数。
那么,再举两个例子:
-
如果字符串 ->
oololanswer = ololo, 9 substrings can be formed 'o', 'l', 'o', 'l', 'o', 'olo', 'lol', 'olo', 'ololo' -
如果字符串 ->
gagadbcgghhchbdganswer = abccbaghghghgdfd, 29 substrings can be formed
给你一个字符串 s。您可以任意重新排列其字符。您的目标是获得一个具有最大可能回文计数值的字符串。
【问题讨论】:
-
不应该自己做作业吗?
-
我已经尝试了很多,但无法提出解决方案
-
@PrateekAgarwal 我的方法能解决你的问题吗?
-
@nlex 我已经编辑了我的问题,我必须找到一个重排,其中回文计数最大。我不想检查所有可能的回文重排。我只是为了从回文计数最大的 sring 重新排列。如果您对此有解决方案,请发表评论。顺便感谢您之前的方法
-
@Neo,我已经在我的回答中提出了最佳解决方案。我已经对其进行了编辑以使其更加详细。请看一下,如果仍有疑问,请告诉我。
标签: arrays string substring dynamic-programming palindrome