我的意思是......假设你有4A,4B和4C的文件。如果我想制作一个文件,如果按字母数字排序,则放在4A和4B之间?
答案 0 :(得分:4)
问题中的关键词是“永远”。这意味着(我假设)“对于任何文件名(字符串)集”。不只是两个字母。
我首先回答“是”,因为您似乎总是可以添加一个字母来在任意两个给定字符串之间创建一个字符串。
然而,答案其实是“不”。
在这个“字母数字”序列中,每个元素都有一个“下一个元素”,你不能在元素和它的下一个元素之间放置一些东西。
例如,“4a”之后的下一个元素是“4a0”
“4a”和“4a0”之间没有字母数字字符串
补充:
问题意味着文件名的字母表是“字母数字”,表示[0..9a..zA..Z],并且排序必须是字母数字(如通常定义的那样)。在这种情况下,答案(如上所述)为“否”。
但是,如https://math.stackexchange.com/questions/978970/is-there-a-sequence-of-strings-where-there-is-always-an-element-between-any-two/978980#978980中所述,如果您控制对字符串(文件名)进行排序的方式,则可以定义一种排序方式,以确保始终存在可以在两个其他字符串之间传递的字符串。
另外,如果您控制字母表(因此您可以选择仅在名称中使用[0..9]命名文件),那么它就变得非常简单了。