【问题标题】:Assign a unique value to a string s based on its lexicographic order根据字典顺序为字符串 s 分配唯一值
【发布时间】:2021-08-05 04:47:59
【问题描述】:

我想提出一个函数,它可以根据字符串的字典顺序为字符串分配唯一值。例如,如果我的函数被标记为 get_key(s),则该函数应将字符串 s 作为输入并返回一个唯一整数,这将允许我根据我得到的那些唯一整数比较两个字符串, 在 O(1) 时间内。

为了清楚起见,一些代码:

get_key('aaa')
#Returns some integer

get_key('b')
#Returns another integer > output of get_key('aaa') since 'b' > 'aaa'

任何帮助将不胜感激。

注意:不能使用python内置函数id()

【问题讨论】:

    标签: python string integer comparison lexicographic


    【解决方案1】:

    如果我清楚地理解您的问题,我想到的一个想法是将输入转换为十六进制,然后从十六进制转换为 int,我相信这会解决问题,但是,我想不可能在 O(1 )。我提供的解决方案(以及我想到的所有可能的解决方案)需要 O(n),因为您没有任何关于输入长度的规范,并且该函数将根据输入的长度运行。

    【讨论】:

      【解决方案2】:

      这是不可能的。

      为什么?无论您为字符串返回什么数字,我总能找到介于这两者之间的新字符串。

      您需要无限数量的值,因为有无限数量的字符串。

      【讨论】:

        猜你喜欢
        • 2018-10-10
        • 2023-01-21
        • 1970-01-01
        • 2018-05-16
        • 1970-01-01
        • 2018-10-06
        • 1970-01-01
        • 1970-01-01
        • 2019-08-05
        相关资源
        最近更新 更多