随笔分类 - 数据结构与算法
摘要:Trie树,又称字符查找树、前缀树,主要用于字符匹配(详见http://en.wikipedia.org/wiki/Trie)。适合做关键词查找,比如查找文章中的关键字然后给他们加链接。 当然对脏词的过滤应用也是样,只是把替换连接的工作换成了替换字符。当前的代码还只是进行简单的替换,并没有做一些字符的处理,比如“昨天见到你妈,逼我要买房”,这本身不是脏词,因为有逗号,所以程序里要增加字符的范围判断。程序中的skip就是用来过滤脏词的简单变体,比如“找*小*姐”,默认是最多跳过3个字符,这个可以随便调整了。总之是一个Trie的锻炼吧。 public class TrieTree { ...
阅读全文
摘要:#include <vector>using namespace std;class HeapSort{private: int len; vector<int> list; void SwapNode(int i,int heapSize);public: void Sort(); void Print(); HeapSort(void); ~HeapSort(void);};#include <iostream>#include "HeapSort.h"using namespace std;HeapSort::HeapSort(vo
阅读全文
摘要:乍看这题真够唬人的,群里看到这个题目后争先恐后的说看法。最简单的办法不外乎就是遍历每个数,然后toString() 看看里面有多少个1,最后全部加起来,这是我们得到标准答案的办法。群里算上我3个人写了3个笨方法都跑出来了,3个笨方法,呵呵 有意思,笨方法也不一样。 程序的实现真是变幻莫测。var re = /1{1}/g;var max = 4 * 10000 * 10000;getTotal(f);getTotal(f1);getTotal(f2);function getTotal(func){ var total = 0; var begin = new Date(); for(var
阅读全文
摘要:初试LiverWriter python..原来python是强类型的动画语言 囧,直接敲代码是有难度,顺便查简明手册。 #!/usr/bin/env pythonimport sysimport randomdef getRandomArr(): arr =[] for i in range(10): ran = random.randint(1,100) arr.append(ran) ret...
阅读全文
摘要:看题目很类似与斐波那契数列,其实只是一个变种而已.递推:function T(n){ var list = ["1"]; for(var i=1;i<n;i++){ list[i] = list[i-1]+(n+1)+list[i-1]; } return list[n-1].split("");}另外比如 T(4) 是121312141213121可以这样看1 1 1 1 ...
阅读全文
摘要:话说这道题有多种解法: 第一种:数学解法举例1 2 3 4 = 101 2 3 3 = 9那么我们可以计算出 4 - (10-9) = 3 则3是重复的。所以我们只要得到 1~ n-1 的和,就可以用高斯公式算出这个结果,但是前提是要知道和,那么遍历数组时间复杂度是O(n)。如果这个数列不是有序的,这个方法依然通用。第二种:折半查找法由于这个数列是有序的,所以用折半查找法是再合适不过了。array...
阅读全文
摘要:给出一个数组 {"1,2,3","4,5,6","7,8,9"} 列出他的如下形式的组合 147 148 149 157 158 159 167 168 169 247 248....
阅读全文
摘要:给出任意几个字符,列出所有的排列组合。方法一: public static List<List<string>> zuhe(List<string> arr) { List<List<string>> rtn; if (arr.Count == 1) { rtn = new List<List<string>>(1...
阅读全文