AC自动机-多模匹配算法C++实现
AC自动机(Aho-Corasick automation), 是一种常用的多模匹配算法,常用于查找一组关键词在某一篇文章是否存在,以及单个词组出现的频率. 基础知识 AC自动机可以认为是TrieTree结构+KMP算法. TrieTree 即字典树,又叫单词查找树或键树,是一种树状机构,属于哈希树的变种。 TrieTree常被用于统计和排序大量字符串(不仅...
Read MoreRedis面试题汇总
1 请说出你对Redis的认识,Redis有哪些优缺点? Redis是一个使用C语言编写,开源的高性能非关系型数据库。 Redis有5种数据存储类型,健的类型只能是字符串,值的类型可以是:字符串、列表、集合、散列表、有序集合。 Redis的数据存储在内存之中,所以读写速度非常快,每秒可以处理超过10万次数据读写操作。 优点 读写性能优异,读速度可达11000...
Read MorePHP7的异常与错误处理机制
回顾PHP5,Error与Exception相互独立,对于致命错误而言,并不能通过set_error_handler()来捕获,这样致命错误就会直接打印出来,即使通过设置错误级别显示http级的友好错误,这样对用户也并不友好。 例如在使用PHP5开发接口时,并不希望在遇到致命错误时直接中断接口响应,或将程序内部错误展示给用户,通常的做法只能在PHP接口的上一...
Read More项目升级到PHP7后是否要开启严格模式?
PHP7增加了严格模式设置,在开启严格模式后,形参和返回类型必须严格符合定义,不符合定义则报Fatal Error. 检查以下代码: function test(int $a): array { return compact('a'); } print_r(test('123')); print_r(test(...
Read MorePHP: html过滤 仅保留指定的标签、属性及CSS样式
适用于前端有限的富文本功能 <?php function rich_text_filter($content) { $allowTags = array('<br>', '<b>', '<p>', '<i>', '&...
Read MoreGit merge fast-forward/–no–off/–squah的区别
fast-forward 未添加任何参数使用git merge合并分支时即为fast-forward模式,这种模式不是在被合并分支上显示被合并的分支,只保留单条分支记录。在合并时间,GIT直接将HEAD指针指向合并分支的头,完成合并,这是一种”快进"方式的合并。 在这种情况下,删除分支,则分支丢失,只在被合并分支上看到commit提交信息,但并不知...
Read MoreGit合并多次Commit
在使用Git时,经常会碰到需要美化提交的场景,虽然多数是出于错误的测试开发流程,或者错误的GIT管理流程,但放任一些临时或者随意的commit就会污染Git History,为后续的代码管理代理不便。 合并多次提交,只需要使用git rebase就可以 示例: commit e1a7dfa9dfea8e63ad079dba37c61d8e80ffbe1b A...
Read More