在两个其他字符串之间按字母顺序生成字母字符串的算法?

时间:2010-07-29 23:36:38

标签: algorithm

我正在尝试解决的一个问题:假设您有两个由小写字母a到z组成的不同字符串,请在两个字符串之间找到一个字符串,以便始终可以找到更多的中间字符串。

更多细节:

鉴于'a'按字母顺序排在'b'之前,'a'和'b'之间有无数个字符串,当按字典排序时:'aa','aaa','aaaa', 'ab','aba'等等。但是,所有字符串之间没有无限数量的字符串 - “a”和“aa”之间没有任何字符串。此外,在'a'和'aaa'之间只存在一个中间字符串'aa'。

什么算法可以找到字母顺序排列在'a'和'b'之间的字符串X,它也满足'a'和X之间以及X和'b'之间存在无限数量字符串的条件?

2 个答案:

答案 0 :(得分:4)

假设可以在两个字符串之间插入无限数量的字符串。

如果较低的字符串较短,请添加“a”以使长度相等,然后在中间字符串中添加“b”。如果上部单词较短,则使中间字符串等于下部字符串,并将z附加到中间字符串。如果两个字符串的长度相等,请使用任一方法。

答案 1 :(得分:1)

您已经说明了寻找解决方案所需的一切。基本上,只有当一个字符串是另一个字符串的前缀并且其余字符串是“a”字符串时,才存在有限数量的字符串。

否则,您可以找到无限数量的中间字符串。