python – 字符串出现在另一个字符串中的次数
发布时间:2020-12-20 13:34:08 所属栏目:Python 来源:网络整理
导读:我有一个不会改变的大型静态二进制文件(10GB). 我希望能够将小字符串(每个15字节或更低)作为输入,然后确定哪个字符串最不频繁. 我明白,如果没有实际搜索整个二进制文件,我将无法确切地确定它,所以我知道它将是一个近似值. 构建树/哈希表是不可行的,因为它需
我有一个不会改变的大型静态二进制文件(10GB).
我希望能够将小字符串(每个15字节或更低)作为输入,然后确定哪个字符串最不频繁. 我明白,如果没有实际搜索整个二进制文件,我将无法确切地确定它,所以我知道它将是一个近似值. 构建树/哈希表是不可行的,因为它需要大约256 ^ 15个字节,这是ALOT. 我有大约100GB的磁盘空间和8GB的RAM将专门用于这个任务,但我似乎找不到任何方法来完成这项任务,而不实际翻阅文件. 我有足够的时间来准备大二进制文件,之后我需要多次决定哪个是频率最低的字符串. 有任何想法吗? 谢谢! (顺便说一句:如果重要的话,我正在使用Python) 解决方法
也许构建一个哈希表,其中包含n-tuples的数量,因为你可以负担得起存储?您可以修剪不再出现的树木.我不会称之为“近似”,但可以是“上限”,保证检测不出现的字符串.
所以,假设您可以构建所有4元组. 然后计算“ABCDEF”的出现次数,你有最小计数(ABCD),计数(BCDE),计数(CDEF).如果其中任何一个为零,则保证不会出现该字符串.如果它是一个,它最多会出现一次(但可能根本不出现). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |