BenArvin's blog

No code, no bug. No deploy, no error.


  • Home

  • Tags

  • Archives

  • About

算法学习之Horspool

Posted on 2018-12-27
Horspool算法是Boyer-Moore算法的简化版,同样的,对于这种算法网上的介绍比较详尽,所以这里仅作为简单记录。同Boyer-Moore算法一样,该算法也是基于后缀的字符串匹配算法。不过有所不同的是,Horspool算法认为,Boyer-Moore算法中好后缀表计算所得的跳转距离,大多是少 ...
Read more »

算法学习之Boyer-Moore

Posted on 2018-12-24
Boyer-Moore算法网上的介绍比较多、比较详细,所以这里仅作为简单记录。该算法是基于后缀的字符串匹配算法,相较于KMP算法等基于前缀的算法来说,理论上效率是更高的。但实际上因为其匹配方式,主要是通过坏字符表、好后缀表进行跳转的,而对于很长的,或者缺少回文形式内容的模式串来说,这两个表的计算工作 ...
Read more »

算法学习之KMP

Posted on 2018-12-18
KMP算法的全称叫Knuth-Morris-Pratt算法,是一种比较常见的,基于前缀的,单字符串匹配算法。 对于这种算法,网上的各种解释介绍也很多,大多是从部分匹配表出发,来说明算法的构造使用方式,以及运行过程。所以咱们这一篇就不再重复介绍这部分了,而是从自动机的角度去介绍。 因此,在进行下面的章 ...
Read more »

算法学习之Aho-Corasick

Posted on 2018-11-26
因为目前网上各处对于Aho-Corasick算法,在关键点上的解释都太简单随便,实在不如我意,所以在此用自己的语言记录一遍。 PS: 如果已经理解了该算法原理,或想要先拿到代码实现的话,请直接跳转至最后一节。 1. 什么是Aho-Corasick算法Aho-Corasick又被简称为AC自动机,是一 ...
Read more »

iOS硬编码混淆

Posted on 2018-11-26
在做iOS马甲包,或者加固的时候,我们需要进行代码混淆。目前比较成熟方便的解决方案,大多是采用念茜大神博客里介绍的#define方式来做。 当然了,博客里给出的方案实现比较简陋,需要手动提取想要混淆的类及方法名。而且似乎因为版本更新等原因,这个比较旧的脚本现在也不能直接拿来用了,所以最好还是当作原理 ...
Read more »

iOS分片下载器(一)

Posted on 2018-10-10
因为目前项目里的HTTP下载器太过简陋,所以想要封装固化一个稍微设计、性能好些的自用,然后就想不如干脆一步到位,整个支持断点续传、支持分片下载的下载器得了。 而至于什么是断点续传,什么是分片下载,举两个例子: 当你下载一个100MB大小的文件时,这次下载了50MB以后暂停了,等到下次再开始下载任务的 ...
Read more »

代码设计二三事(一)

Posted on 2018-06-01
对于代码设计,我们是有着一些规律、原则、方案去遵循的,比如大家常说的MVC、MVP、MVVM之类的架构,以及观察者模式、单例模式、装饰模式等等的经典设计模式。 但到了实际项目里,该选用哪种架构、哪种设计模式,如何去设计自己的代码,说到底还是比较感性的。我们还是会遇到多种设计方式都行、都不错难以抉择的 ...
Read more »

Jest测试框架使用记录(三)

Posted on 2018-04-23
紧接着上一篇,这次介绍的是Enzyme库。Enzyme是airbnb公司开源的测试工具库,可以和mocha、jest、karma等许多测试框架搭配使用,不过在这里,我们还是和jest框架搭配。具体的安装配置,可以参照Enzyme官网。 1、官方测试工具库因为Enzyme实际上是一个对官方测试工具库的 ...
Read more »

Jest测试框架使用记录(二)

Posted on 2018-03-05
1、覆盖率运行jest --coverage命令,就可以得到当前的覆盖率统计数据输出,大致像下面这样: 123456789101112------------------------------|----------|----------|----------|----------|-------- ...
Read more »

更好地封装React Native组件(一)

Posted on 2018-02-27
因为项目需要,前端时间封装了一个纯React Native端的,类似于iOS下UIActionSheet样式的,底部菜单弹窗组件BAActionSheet。 不同于以往的原生组件封装,纯React Native组件的封装,因为语言的原因受到了更多的限制。比如想要使用组件,就得先写进render()方 ...
Read more »
123
© 2021 Ben Arvin
Powered by Hexo v3.9.0
|
Theme – NexT.Mist v6.6.0