按字典顺序最小的回文结构

时间:2016-09-02 20:08:51

标签: java string algorithm lexicographic

我正在编写一个程序,我必须知道如果可以制作字符串是否可以成为回文,请在字符串中填写缺少的字母(由'。'表示)。然而,丢失的字母必须以这样的方式填充,即得到的回文是字典上最小的回文。我能够找到输入的回文,但我不明白什么是词典上最小的回文。

2 个答案:

答案 0 :(得分:0)

回答您的具体问题:

  

我的问题是如果把所有遗失的东西都放进去了。'在字符串中(如果可以的话)   是一个回文)不是字典上的结果字符串   最小的回文?

嗯,不。

例如: 如果输入为:cbb.bbc,则输出应为cbbabbc。 但如果输入为df..ffd,则输出应为dffaffd。 并非所有点都转换为。

答案 1 :(得分:0)

始终填写for作为缺失的字符并不总是会产生正确的解决方案。考虑以下输入

a.bc.ba

用'a'替换点会导致

aabcaba

这不是回文。相反,你需要用'b'代替两个点:

abbcbba

如果你有更多的点,问题会变得更加棘手,例如

a.bc.b.a.b.c.a.c.a

字典上最小的回文是一个结果字符串,与所有其他可能的结果相比,在字典上是最小的。

任务可能更复杂,你可以用多个字符替换一个点。您没有指定确切的条件,因此很难给出完整的答案。