首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Algo在文件中查找冗余数据

Algo在文件中查找冗余数据
EN

Stack Overflow用户
提问于 2015-12-22 11:09:06
回答 3查看 51关注 0票数 0

我有一个二进制文件,其中一个记录被多次重复。该文件仅由此记录组成,但可能重复多次。

我不知道唱片有多大。提取记录并知道重复次数的最佳算法是什么?

例如,假设我有一个文件,其内存表示为十六进制。(忽略文件头和所有内容)

3F5C BA 3F5C BA 3F5C

在这里,我的记录是3F5CBA,3字节,在这里重复15次。

如何获得这些值(记录的大小及其重复次数)。可以使用Rabin Karp完成,但有没有其他更好和有效的方法来做到这一点。

EN

回答 3

Stack Overflow用户

发布于 2015-12-22 11:35:12

一种可能是获取文件的大小并对其进行因子分析。例如,如果文件大小为1280,则您知道记录大小为下列之一:

代码语言:javascript
运行
AI代码解释
复制
1,2,4,5,8,10,16,20,32,40,64,80,128,160,256,320,640,1280

然后,你可以测试每一个假设,直到你找到一个匹配或用尽的可能性。

当然,这假定文件没有被截断或以其他方式损坏。

这可能不是最有效的方法,但它的编码速度很快,而且可以非常快地完成您的任务。这取决于您的文件有多大,以及您想要这样做的频率。有时,蛮力解决方案是正确的解决方案,即使它不是“最好的”解决方案。

票数 1
EN

Stack Overflow用户

发布于 2015-12-22 11:54:02

您可以查看后缀树,可以将字符串的所有后缀插入后缀树中,并计算某个子字符串发生的次数,然后执行树遍历并找到答案。

票数 0
EN

Stack Overflow用户

发布于 2015-12-22 13:40:27

  1. 首先假设记录的长度l为1
  2. 通过比较随后所有大小为l的块,检查您的假设是否正确。一旦你发现不匹配就停止。
  3. 如果没有发现错配,您就完成了。回去吧。
  4. 搜索长度为l的块的下一个匹配项。这给了另一个候选记录长度。如果下一个匹配块开始于索引i (基于零),则设置l = i并转到步骤2。

如果您知道总是有一个解决方案,您可能会稍微加快步骤2。如果你检查了50%的数据,你可以停止。

注:这个答案假设您正在寻找最短的可能记录。例如,如果您的所有字节都是FF,则可以找到许多其他解决方案,而不是l=1 (例如,只有一个大记录)。

示例:从大小为1的记录开始,在您的例子中是3F。然后通过检查所有后续字节是否也是3F来检查这是否是完整的记录。您可以停止使用下一个字节,因为它不同。现在寻找下一个3F。它发生在索引3(以零为基础)。现在您知道您的记录至少有3个字节长。假设您的记录有3个字节长。检查随后的三个字节块是否与您的记录匹配。完成了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34422810

复制
相关文章
Rmarkdown与Word文档的交互
在Rmarkdown中提供了直接生成Word文档格式的选项,只要在新建rmarkdown时选择Word选项就行了。
医学和生信笔记
2022/11/15
1.9K0
Rmarkdown与Word文档的交互
Swagger文档转Word 文档
GitHub 地址:https://github.com/JMCuixy/SwaggerToWord/tree/developer 一、前言     为什么会产生这个需求呢?     我们公司作为乙方,老是被客户追着要一份API文档,当我们把一个 Swagger 文档地址丢给客户的时候。客户还是很不满意,嫌不够正式!!死活坚持要一份 word 文档 。然后领导给了个接口模板,就把这个活交给我了......我去,近10个微服务,几百个接口,这不得要了我的命啊(最后整理出来将近200页的 word 文档)。最后
JMCui
2018/03/16
9K0
Swagger文档转Word 文档
HTML5 download属性无效的问题
如果url指向第三方资源,download会失效,表现和不使用download时一致——浏览器能打开的文件,浏览器会直接打开,不能打开的文件,会直接下载。浏览器打开的文件,可以手动下载。
javascript.shop
2019/09/04
5K0
Python创建分栏排版的Word文档
功能描述: 创建docx格式的Word文档,设置分栏数不同的多个节,并在每个节中写入文本。 参考代码: 运行结果:
Python小屋屋主
2020/04/01
2K0
MySQL生成word文档
链接:https://pan.baidu.com/s/16tkYaO7l42XNxUPmQi5deQ 提取码:i6mq
HaC
2020/12/30
4.2K1
MySQL生成word文档
获取pdf文档属性的方法
 当我们想在打开pdf文件之前对pdf状态进行判断时,我们可以在pdf文档属性里添加自己需要的信息,例如把pdf的有效时间和开始时间以json格式保存在作者信息里,这样就方便得多了。因此我们需要这样的第三方的类库,对pdf文档信息进行读写,在这里我推荐pdfbox和pdfclown,这两个都是java处理pdf的类库,而且开源。下面主要介绍pdfclown,而pdfbox做法差不多。        首先,我们在官网上下载pdfclown的源代码http://www.stefanochizzolini.it/
forrestlin
2018/05/23
2.1K0
新建 Microsoft Word 文档
正如我们在第4章中所了解到的,大多数组织都会提供一个可访问Internet(或Intranet,如果在防火墙后面进行测试)的网站,以向匿名用户推销组织能力、联系信息等。这些类型Web服务的一种常见部署方法是托管在非军事区(DMZ)中,非军事区是一个逻辑上或物理上独立的子网,用于公开组织面向公众的外部服务。
顾翔
2022/09/23
7K0
新建 Microsoft Word 文档
java生成word文档
定义一个工具类wordUtil: package com.keji.service.utils; import org.apache.poi.xwpf.usermodel.*; import java.io.FileInputStream; import java.io.InputStream; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.regex.Matcher; i
FHAdmin
2022/01/04
1.6K0
Android为属性组件动画无效
本来我的代码是这样的 然后发现这动画只能在窗体onCreate的时候使用有效。 放在点击事件之类的就不行了。 后经百度发现需要开始动画而不是设置动画 carImg.startAnimation(animation);
SingYi
2022/07/13
8020
Android为属性组件动画无效
python读取word文档表格里的数据
首先需要安装相应的支持库: 直接在命令行执行pip install python-docx
py3study
2020/01/03
3.8K1
text-align属性对position:absloute/fixed的元素无效
text-align属性对position:absloute/fixed的元素无效
javascript.shop
2019/09/04
1.9K0
text-align属性对position:absloute/fixed的元素无效
android:imeOptions属性详解以及无效处理
软键盘的Enter键默认显示的是“完成”文本,我们知道按Enter建表示前置工作已经准备完毕了,要去什么什么啦。比如,在一个搜索中,我们输入要搜索的文本,然后按Enter表示要去搜索了,但是默认的Enter键显示的是“完成”文本,看着不太合适,不符合搜索的语义,如果能显示“搜索”两个字或者显示一个表示搜索的图标多好。事实证明我们的想法是合理的,Android也为我们提供的这样的功能。通过设置android:imeOptions来改变默认的“完成”文本。这里举几个常用的常量值:
再见孙悟空_
2023/02/10
2.5K0
android:imeOptions属性详解以及无效处理
java解析word文档内容
今日主题:java解析word文档内容 1依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.16</version> </dependency> <dependency> <groupId>org.apache.poi</groupId>
java后端指南
2021/07/20
2.2K0
使用Python处理Word文档
1. 前言2. 使用Document对象创建文档3. 在word文档中使用标题4. 在word文档中使用段落5. 在word文档中使用列表6. 在word文档中使用表格7. 在word文档中使用章节8. 在word文档中使用分页9. 在word文档中使用图片10. 读取word文档中的内容
LogicPanda
2019/09/03
7.4K0
Java POI Word 写文档
本文通过介绍Apache POI,讲解如何使用Java代码操作Microsoft Word文档。
I Teach You 我教你
2018/01/02
2.4K0
使用 Python 操作 word文档
最近手头有一个需求是对word文档内容进行判断,搜索到一个包感觉不错,简单记录一下关键操作:
生信菜鸟团
2020/07/21
1.8K0
Word VBA技术:设置文档中表格的格式
在编辑Word文档时,经常会使用表格,也会设置表格格式,让表格看起来更美观。那么,在VBA中如何操作表格来设置其格式呢?下面介绍两段简单的代码,来学习使用代码初步设置表格的格式。
fanjy
2023/02/24
1.4K0
点击加载更多

相似问题

使用AddPicture方法word调整图像属性

11

Word表中的Shapes.AddPicture

211

编辑Word文档的属性

12

修改Word文档属性

34

追加不同的word文档,保持每个文档的属性

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文