代码之家  ›  专栏  ›  技术社区  ›  dave mankoff

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

  •  6
  • dave mankoff  · 技术社区  · 15 年前

    我要解决的一个问题是:假设你有两个由小写字母a到z组成的不同字符串,在两个字符串之间找到一个字符串,这样就可以在字符串之间找到更多的字符串。

    进一步细节:

    考虑到“a”按字母顺序排在“b”之前,“a”和“b”之间的字符串数量是无限的,当按字典排序时,“a a”、“a a a”、“a a a a”、“a b”、“a b a”等。但是,所有字符串之间的字符串数量不是无限的-没有任何字符串在“a”和“a a”之间。此外,在“a”和“a a a”之间,字符串“a a”之间只有一个。

    什么算法可以找到一个字符串x,该字符串x按字母顺序出现在“a”和“b”之间,并且满足在“a”和“x”以及“x”和“b”之间有无限多个字符串的条件?

    2 回复  |  直到 15 年前
        1
  •  4
  •   deinst    15 年前

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

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

        2
  •  1
  •   MSN    15 年前

    为了找到一个解决方案,你已经陈述了你需要知道的一切。基本上,只有当一个字符串是另一个字符串的前缀,而其余的字符串是“a”的字符串时,才存在有限数量的字符串。

    否则,可以在字符串之间找到无限个。