【发布时间】:2012-12-16 22:58:44
【问题描述】:
字符串的数量可以很大,如 30000。给定 N 个字符串,在修改英文字母后输出哪些字符串在字典上最少。例如acdbe……
例如,如果字符串是:
omm
moo
mom
ommnom
“妈妈”在字典上已经是原始英文字母表中最少的。我们可以通过在字母表中切换“m”和“o”(“abcdefghijklonmpqrstuvwxyz”)来最小化“omm”这个词。其他那些你不能按字典顺序首先,不管你做什么。
有什么快速的方法吗?我没有办法解决这个问题,除非尝试每一个可能的字母表
【问题讨论】:
-
每个 unique 字符串都可以设为“字典顺序最少”。如果两个(或更多)字符串共享一个公共前缀,则其中只有一个可以按字典顺序设为最少。除非后缀以“新”字母开头。
-
是的,我也注意到了。也符合这个想法,如果一个字符串是另一个字符串的子字符串,则更长的字符串不能是 lexi-least
-
你的程序应该用上面的输入实际输出什么?
-
{"妈妈", "omm"}。我很确定它可以使用 wildplasser 的方法解决。