相关疑难解决方法(0)

你会如何设计一个完美哈希的函数?

感兴趣的领域是字符串匹配.假设我有这样的结构.

typedef struct
{
    char *name,
    int (*function)();

} StringArray

StringArray s[] = 
{
    {"George", func1},
    {"Paul",   func2},
    {"Ringo",  func3},
    {"John",   func4},
    {"",       NULL}   /* End of list */ 
}
Run Code Online (Sandbox Code Playgroud)

数组中有固定数量的字符串.它们是硬编码的,如示例中所示.如果表发生变化,则需要重新评估散列函数的质量.

我想将哈希函数应用于字符串,如果字符串与数组中的字符串匹配,则调用该函数.这需要一个完美的哈希函数.不允许冲突.要求散列的目的是在查找上获得O(1)性能.

您在设计功能时有什么想法?

c c++ string hash function

10
推荐指数
2
解决办法
1332
查看次数

将字符串转换为数字并返回字符串?

我想知道如何将短ASCII字符串转换为数字(int,float或数字字符串).我在这里看到几个帖子提到了完美的哈希,似乎它可能就是我需要的东西.但是,我对此并不十分了解数学.

如何将ASCII字符串转换为数字序列然后再转换为字符串?

作为旁注,将字符串分解为ASCII字符数很容易.

foreach(str_split($string) as $char) $number .= ord($char);
Run Code Online (Sandbox Code Playgroud)

更新

经过更多的阅读,我想出了这个.但是,我想知道是否有任何方法缩短数字序列,所以它不会那么长.

class intnum
{
    public static $charset = array(
        32 => ' ', 33 => '!', 34 => '"', 35 => '#', 36 => '$',
        37 => '%', 38 => '&', 39 => "'", 40 => '(', 41 => ')',
        42 => '*', 43 => '+', 44 => ',', 45 => '-', 46 => '.',
        47 => '/', 48 => …
Run Code Online (Sandbox Code Playgroud)

php string encoding perfect-hash

5
推荐指数
1
解决办法
9673
查看次数

标签 统计

string ×2

c ×1

c++ ×1

encoding ×1

function ×1

hash ×1

perfect-hash ×1

php ×1