kmp 实现strstr

Posted by 夏泽民

实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。



float 的表示和进度转换

Posted by 夏泽民

写代码的时候发现php和go计算金钱的时候差了1分,追了下原因 背景知识



memory barrier 内存屏障

Posted by 夏泽民

在现代的CPU中,为了性能优化(优化发生在CPU和Complier两个阶段),会对内存的操作(loads and stores)顺序进行重排序(reordering of memory operations),这样就导致了乱序执行(out-of-order execution) 换一句话,代码的编写顺序(program order)和实际内存的访问顺序(order of memory operations),不一定是一致的。 在单线程的环境下,乱序执行(out of order execution)并不会影响结果,因为即便方法内的内存读写操作是out of order execution,但方法与方法的调用顺序是一致的,可以保证结果的正确性。 但在多线程环境下,多个线程共享同一块内存,且并发执行,那么out of order execution可能会影响程序的行为,产生无法预期的结果。 所以,很明显,多线程环境下,我们要去解决这种可能产生”无法预期“结果的情况。 在开始之前,先举一个例子说明,在多线程环境下,out of order execution,会引起哪些问题?



AC自动机

Posted by 夏泽民

https://oi-wiki.org/string/ac-automaton/ AC 自动机是 以 TRIE 的结构为基础 ,结合 KMP 的思想 建立的。



MOVSD

Posted by 夏泽民

目前80386系列的处理器提供几组处理字节、字和双字数值的指令,尽管这些指令成为基本字符串指令,但他们的用法并不局限于字符数组。 



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required