AC自动机-多模匹配算法C++实现

AC自动机(Aho-Corasick automation), 是一种常用的多模匹配算法,常用于查找一组关键词在某一篇文章是否存在,以及单个词组出现的频率. 基础知识 AC自动机可以认为是TrieTree结构+KMP算法. TrieTree 即字典树,又叫单词查找树或键树,是一种树状机构,属于哈希树的变种。 TrieTree常被用于统计和排序大量字符串(不仅...

Read More

Redis面试题汇总

1 请说出你对Redis的认识,Redis有哪些优缺点? Redis是一个使用C语言编写,开源的高性能非关系型数据库。 Redis有5种数据存储类型,健的类型只能是字符串,值的类型可以是:字符串、列表、集合、散列表、有序集合。 Redis的数据存储在内存之中,所以读写速度非常快,每秒可以处理超过10万次数据读写操作。 优点 读写性能优异,读速度可达11000...

Read More

PHP7的异常与错误处理机制

回顾PHP5,Error与Exception相互独立,对于致命错误而言,并不能通过set_error_handler()来捕获,这样致命错误就会直接打印出来,即使通过设置错误级别显示http级的友好错误,这样对用户也并不友好。 例如在使用PHP5开发接口时,并不希望在遇到致命错误时直接中断接口响应,或将程序内部错误展示给用户,通常的做法只能在PHP接口的上一...

Read More

Git merge fast-forward/–no–off/–squah的区别

fast-forward 未添加任何参数使用git merge合并分支时即为fast-forward模式,这种模式不是在被合并分支上显示被合并的分支,只保留单条分支记录。在合并时间,GIT直接将HEAD指针指向合并分支的头,完成合并,这是一种”快进"方式的合并。 在这种情况下,删除分支,则分支丢失,只在被合并分支上看到commit提交信息,但并不知...

Read More

Git合并多次Commit

在使用Git时,经常会碰到需要美化提交的场景,虽然多数是出于错误的测试开发流程,或者错误的GIT管理流程,但放任一些临时或者随意的commit就会污染Git History,为后续的代码管理代理不便。 合并多次提交,只需要使用git rebase就可以 示例: commit e1a7dfa9dfea8e63ad079dba37c61d8e80ffbe1b A...

Read More