
算法
woshiaotian
点滴的积累,可以铸就未来。
QQ:346873803
EMAIL:346873803@qq.com
展开
-
二分查找
#include int bsearch(int a[],int low,int high,int key){ int mid = 0; while(low<=high){ mid = (low + high)/2;// printf("mid =%d\n",a[mid]);原创 2013-03-19 13:42:29 · 760 阅读 · 0 评论 -
算法题(6)
题目:已知一个矩阵 matrix = [ ['A', 'P', 'H', 'S'], ['U', 'L', 'O', 'A'], ['O', 'M', 'L', 'K'], ['F', 'B', 'I', 'R'], ]在矩阵中查找多个字符串,字符串的数量可能很多["LFK", "HMM", "RPOOI"]对于字符串”LFK”原创 2017-03-10 00:44:29 · 2506 阅读 · 0 评论 -
算法题(5)
题目: 已知一条线段从0 到 10000,给定一个L线段(x,y), 找出所有包含线段L线段 如下图所示,假定 (x, y) 为 (2,4) , 所有能否覆盖L线段的组合为 (0, 4) (0, 5) (0, 6) (1, 4) (1, 5) (1, 6) (2, 4) (2, 5) (2, 6) 接替思路: 观察线段可以看出所有能否覆盖L线段的组合(t1, t2), 左侧的坐标点t1原创 2016-08-01 14:04:07 · 547 阅读 · 0 评论 -
算法题(3)
在不考虑闰年,润日的情况下计算某人的下一次生日from datetime import datetime, timedeltadef solve(birthday): now = datetime.now() now = datetime(now.year, now.month, now.day) year = (now.year - birthday.year) + bi原创 2016-07-15 10:50:54 · 593 阅读 · 0 评论 -
内存计数器实现限频
以分钟为单位计数,超过相应数值泽超频,很简单,不多解释import timeimport threadingclass Counter(object): def __init__(self): self.curr = 0 self.internal_dd = {} self.lock = threading.Lock() def in原创 2015-11-16 22:00:52 · 814 阅读 · 0 评论 -
对称加密算法和非对称加密算法速度对比
测试环境: CPU 1 核 Intel 2.2GHZ 内存 1GB 算法 种类 对称加密算法 AES CBC 模式 非对称加密算法 RSA 256加密明文长度为160 bytes 各运行10000次上代码 test_aes.pyfrom Crypto.Cipher import AESimport timeobj = AES.new('This is a key123原创 2015-07-21 19:39:06 · 13032 阅读 · 2 评论 -
Delayqueue (python 实现)
起因:几年前为了开发一个监控系统,需要周期性的对系统状态进行检查,因此需要对检查任务进行添加,排队(按时间),移除等操作,无意中发现java jdk 中有DelayQueue,因此实现了一个python版本源码如下:# -*- coding:utf-8 -*-# python 版的 DelayQueue 类 和 Delayed 接口 # from Queue import PriorityQu原创 2015-07-07 13:24:51 · 2479 阅读 · 0 评论 -
DFA 算法实现关键词匹配
起因: 从网页中爬去的页面,需要判断是否跟预设的关键词匹配(是否包含预设的关键词),并返回所有匹配到的关键词 。 目前pypi 上两个实现ahocorasick https://pypi.python.org/pypi/ahocorasick/0.9 esmre https://pypi.python.org/pypi/esmre/0.3.1但是其实包都是基于DFA 实现的 这里提供源码如原创 2015-06-12 11:23:08 · 6041 阅读 · 0 评论 -
简单LRU cache 实现
起因:我的同事需要一个固定大小的cache,如果记录在cache中,直接从cache中读取,否则从数据库中读取。python的dict 是一个非常简单的cache,但是由于数据量很大,内存很可能增长的过大,因此需要限定记录数,并用LRU算法丢弃旧记录。key 是整型,value是10KB左右的python对象原创 2014-09-25 23:07:21 · 1064 阅读 · 0 评论 -
练习题(4) -- 一道简单而有有趣的题目
题目如下:一个字符串形如 "yazyypta" 从这个字符串中删除任何字符,得到的字符串都是它的子字符串,比如对于这个字符串"ya", "ayy", "pta" 都是它的子字符串,所有的子字符串按照字母序比较大小,求最大的大小最大的子字符串举几个例子1) abcc2) bcbxaxa3) babababbba原创 2014-05-14 13:26:24 · 976 阅读 · 0 评论 -
练习题(1)
题目topcoder Room 675 SRM 477 DIV1 一道比较简单的题目,原创 2014-04-28 11:45:57 · 746 阅读 · 0 评论 -
练习题(3) -- 另类的动态规划问题
已知1) 对于数字1 可以表达为 (1)2) 对于数字2 可以表达为 (1,1) (2)解释1 + 1 = 23) 对于数字3 可以表达为 (1,1,1) (1, 2) (2, 1) (3)1 + 1 + 1 = 31 + 2 = 32 + 1 = 3求对于数字N 所有表达项原创 2014-05-10 21:34:06 · 1071 阅读 · 0 评论 -
一道穷举法算法题
题目是在topcoder看到的,但是不小心关了,不记得是题号了。题目如下:给定一组数,求哪这组数字能够组成的最长连续子序列,但其中比较特殊的是0可以代替任何数注意: 其中的数字可以重复限制条件:数字的返回是从 0 ~ 1000000 包含0, 1000000这组数的数量不超过 501) 0, 6, 5, 10, 3, 0, 11原创 2014-04-22 12:04:03 · 1394 阅读 · 0 评论 -
练习题(2)
ROOM 676原创 2014-05-03 20:47:52 · 585 阅读 · 0 评论 -
猴子选大王问题的实现
//标准的猴子选大王问题class Node { // 编号 int num; Node next;}public class KingElection { // N个人组成环 分别编号为0,1,... N-1 // 从0号开始报数(从1开始),数到M的出局,从下一个人开始继续报数,重复此过程,直至最后一个人 // 采用循环链表实现 public int solve(int原创 2013-04-08 11:07:16 · 1354 阅读 · 1 评论 -
DFA 算法实现敏感词过滤(字典树)
敏感词过滤的经典算法DFA ,看完相关资料后,自己实现了一下,同时做了评估实验先上代码#!/usr/bin/python2.6 # -*- coding: utf-8 -*-import timeclass Node(object): def __init__(self): self.children = None# The encode of word is UTF-8原创 2013-08-18 16:38:02 · 13311 阅读 · 8 评论