我有一个500密耳的字符串列表.字符串是字母数字,ASCII字符,大小不一(通常为2-30个字符).此外,它们是单个单词(或没有空格的单词组合,如'helloiamastring').
我需要的是一种快速检查目标的方法,比如'嗨'.结果应该是500mil列表中以'hi'开头的所有字符串(例如'hithere','hihowareyou'等).这需要很快,因为每次用户键入内容时都会有一个新的查询,所以如果他输入"hi",如果他输入"hey",将显示500 mil列表中以"hi"开头的所有字符串,所有以"hey"开头的字符串都会显示等.
我尝试过Tries算法,但存储300 mil字符串的内存占用空间非常大.它应该需要我100GB + ram.而且我很确定这个名单会增长到十亿.
这个用例的快速算法是什么?
PS如果没有快速选项,最好的选择是限制人们在结果显示之前至少输入4个字符.有没有快速的方法来检索结果呢?