Go Channel Practice IV - Token Bucket

https://en.wikipedia.org/wiki/Token_bucket

 

设计模式 - 工厂模式

意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

主要解决:主要解决接口选择的问题。

何时使用:我们明确地计划不同条件下创建不同实例时。

如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。

 

Leetcode - Index Pairs of a String

https://leetcode.com/problems/index-pairs-of-a-string/

Given a text string and words (a list of strings), return all index pairs [i, j] so that the substring text[i]...text[j] is in the list of words.

 

Example 1:

Input: text = "thestoryofleetcodeandme", words = ["story","fleet","leetcode"]
Output: [[3,7],[9,13],[10,17]]

 

读书笔记 - 字符串匹配

KMP 算法

利用 dfa 状态机。

对于长度为M的模式字符串和长度为N的文本,KMP算法查找算法访问的字符不会超过M+N个。

KMP算法为最坏情况提供的线性级别运行时间保证是一个重要的理论成果。在实际应用中,它比暴力算法的速度又是并不十分明显,因为极少有应用程序需要在重复性很高的文本中查找重复性很高的模式。

Boyer-Moore算法

Boyer-Moore 从右向左扫描字符串。

Rabin-Karp 指纹字符串查找算法

查找多个字符串匹配。