加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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).如果其中任何一个为零,则保证不会出现该字符串.如果它是一个,它最多会出现一次(但可能根本不出现).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读