上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 25 下一页
摘要: Trie树结构Trie树是一种树形数据结构,又称为单词查找树、字典树,是一种用于快速检索的多叉树结构。典型应用是统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的主要设计思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销。它的优点是可以最大限度的减少无谓... 阅读全文
posted @ 2015-09-16 23:28 农民伯伯-Coding 阅读(350) 评论(0) 推荐(0)
摘要: 题目大意给出一个字符串S,S可能是多个较短的字符串的重复连接。比如"ababab"为字符串"ab"重复三次的结果;"abc" 为"abc"重复一次的结果;"abababab"可能是"abab"重复两次,也可能是"ab"重复四次的结果。对一个给定的字符串S,求出最大的k,使得它为某个子串A重复k次的结... 阅读全文
posted @ 2015-09-16 16:57 农民伯伯-Coding 阅读(596) 评论(0) 推荐(0)
摘要: 题目大意给定字符串S,求出S的所有可能相同前后缀的长度。比如:"alala"的前缀分别为{"a", "al", "ala", "alal", "alala"}, 后缀分别为{"a", "la", "ala", "lala", "alala"}. 其中有{"a", "ala", "alala"}是相同... 阅读全文
posted @ 2015-09-16 15:58 农民伯伯-Coding 阅读(1442) 评论(0) 推荐(0)
摘要: 题目大意给定两个字符串S1, S2,求S1中包含多少个S2串。其中S1长度最大为 1000000, S2长度最大为10000。题目分析典型的字符串匹配问题,直接匹配显然会超时,考虑使用kmp算法。需要注意的是,尽量减少求串长度的strlen的执行次数。实现(c++)#define _CRT_SECU... 阅读全文
posted @ 2015-09-16 15:33 农民伯伯-Coding 阅读(205) 评论(0) 推荐(0)
摘要: KMP算法是字符串匹配处理中一种非常高效的算法,它的时间复杂度可以达到O(N+M),远优于普通匹配的O(NxM)。它最早是由Knuth,Morris,Pratt共同提出。 算法原理 普通的字符串匹配,假设从母串的A位置开始匹配,在某个位置B当母串和子串失配的时候匹配的起点会回溯到A+1处重新开始。而 阅读全文
posted @ 2015-09-16 13:35 农民伯伯-Coding 阅读(244) 评论(0) 推荐(0)
摘要: 惰性求值惰性求值一般用于函数式编程语言中,在使用延迟求值的时候,表达式不在它被绑定到变量之后就立即求值,而是在后面的某个时候求值。可以利用c++11中的std::function, lambda表达式以及c++11实现的Optional来实现lazy。其中,std::function用来保存传入的函... 阅读全文
posted @ 2015-09-15 21:50 农民伯伯-Coding 阅读(4216) 评论(0) 推荐(0)
摘要: optionalc++14中将包含一个std::optional类,optional内部存储空间可能存储了T类型的值也可能没有存储T类型的值。当optional被初始化之后,可以通过operator bool() 获得true的返回值,否则返回值为false,这样可以知道该optional内部是否有... 阅读全文
posted @ 2015-09-15 20:45 农民伯伯-Coding 阅读(3236) 评论(0) 推荐(0)
摘要: 在c++11之前,类模板和函数模板只能含有固定数量的模板参数,c++11增加了可变模板参数特性:允许模板定义中包含0到任意个模板参数。声明可变参数模板时,需要在typename或class后面加上省略号"..."。省略号的作用有两个:1. 声明一个参数包,这个参数包中可以包含0到任意个模板参数2. ... 阅读全文
posted @ 2015-09-15 16:17 农民伯伯-Coding 阅读(4698) 评论(0) 推荐(1)
摘要: 题目大意 一家超市,要卖出N种物品(每种物品各一个),每种物品都有一个卖出截止日期Di(在该日期之前卖出可以获得收益,否则就无法卖出),且每种物品被卖出都有一个收益值Pi. 卖出每个物品需要耗时1天,且任一时刻只能卖出一个物品。给出这N种物品的Di和Pi,求最大收益值。 题目分析 求最优值问题,可以 阅读全文
posted @ 2015-09-14 23:33 农民伯伯-Coding 阅读(343) 评论(0) 推荐(0)
摘要: 1. new/deletec++中的new(和对应的delete)是对堆内存进行申请和释放,且两个都不能被重载。2. operator new/operator deletec++中如果想要实现不同的内存分配行为,需要重载operator new,operator delete。operator n... 阅读全文
posted @ 2015-09-14 23:12 农民伯伯-Coding 阅读(345) 评论(0) 推荐(1)
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 25 下一页