【发布时间】:2019-05-05 13:44:39
【问题描述】:
使用 K 个字母求长度为 N 的回文的总数,使得长度为 2 到 N-1 的任何前缀都不是回文。
试过K*((K-1)^(Math.ceil((N-2)/2)))
第一名可以装K个字母。第二个可以K-1,除了第一名。第三个也一样。
由于我们需要用字母填充的地方有一半将遵循相同的方式使其成为回文。但它不是正确的解决方案。
【问题讨论】:
-
$K$ 字母必须不同吗?你怎么知道你的解决方案不正确?它有什么不正确的?您标记了动态编程,但您的解决方案不涉及 DP——您有理由认为它应该这样做吗?
-
是的,K 字母是不同的,但您可以在同一个字符串中多次使用它们。它可能需要 DP 来解决这个问题,但不确定。此解决方案不包含所有可能的此类回文字符串。
标签: algorithm permutation dynamic-programming palindrome discrete-mathematics