自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 字符串正则表达式匹配

题目:请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配。 bool match(char* str, char* pattern)

2016-05-31 10:42:56 501

原创 高级数据结构B树

定义:一颗M阶的B树1)根节点的孩子数为2~M;(关键字个数1~M-1)2)非根节点的孩子数为[M/2]~M。[x]上限函数。(关键字个数M/2]-1~M-1)3)所有的叶子节点都在同一层。4)有y个孩子的非叶子节点,其拥有y-1个关键字元素,且其按由小到大顺序排列。B树的插入(插入一个关键字元素):思路:1)在B树中Find此关键字是否存在,若

2016-05-23 20:57:36 350

转载 设计模式之对象池模式(Object Pool)

http://blog.csdn.net/wcyoot/article/details/7584574http://www.cnblogs.com/west-link/archive/2011/09/05/2167149.html对象池模式今天忽然看到一个有趣的设计模式,就上网看了下,现做一个整理。 前期了解:Object Pool,即对象池,对象被预先创建并初始化

2016-05-19 10:21:09 8736

原创 回溯法,DFS的应用

1.矩阵中的路径请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个

2016-05-18 20:07:58 682

原创 设计模式总结

模式:在一定的环境下,用固定的套路解决问题。设计模式的基础:多态(继承,虚函数重写,基类指针指向子类对象)。设计模式理解:将简单的问题复杂化(标准化),将其不断拆分,方便用固定的套路去解决。设计模式分为三类(23种):创建型模式:用来处理对象的创建过程       1. 单例模式       2.工厂模式       3.抽象工厂模式       4.建造者

2016-05-18 11:29:28 264

原创 设计模式之建造者模式

建造者模式题外话:面向对象的一个重要指导思想就是,封装隔离变化的,留出不变的。特点:一个对象的构建比较复杂,则将对象的构建和对象的表示(要被创建的产品)进行分离。角色:Product:所要构建的复杂对象。Builder:定义创建对象过程的抽象,提供构建不同组成部分的抽象接口。他和产品之间的关系是关联,即拥有一个产品属性的成员变量。ConcreteBuil

2016-05-18 10:33:29 236

原创 设计模式之外观模式

外观模式特点:外观模式其实定义了一个高层接口(将各个子系统的中的操作打包),该接口为多个子系统中的一组接口提供一个一致的界面,使得子系统更加容易使用。它对客户屏蔽了子系统组件,减少了客户处理的对象的数目,实现了子系统与客户之间的松耦合关系。角色:外观(Facade)角色:客户端可以调用这个角色的方法。此角色知晓相关的(一个或者多个)子系统的功能和责任。在正常情况

2016-05-17 21:55:59 215

原创 设计模式之模板模式

http://www.cnblogs.com/jiese/p/3180477.html模板模式特点:在抽象类中抽象出统一的一套操作步骤,里面有一个模板函数,它提前将业务逻辑制定好,即各个子函数的调用顺序提前规定好。但是这里只是含有各个子函数的逻辑申明,而各个子函数的具体实现是在其各个子类中实现的。角色:AbstractClass是抽象类,其实也就是一个抽象模

2016-05-17 21:12:30 253

原创 设计模式之策略模式

http://blog.csdn.net/lcl_data/article/details/10255125http://www.cnblogs.com/jiese/p/3181099.html策略模式特点:它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。角色:Stragegy类,策略

2016-05-17 20:43:00 241

原创 设计模式之命令模式

命令模式特点:针对3类对象(命令,命令的发起者,命令的实行者)。将每一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求进行管理(请求进行排队或记录请求日志,以及支持可撤销的操作)。角色:Command类:用来声明执行操作的接口。ConcreteCommand类:将一个接收者对象绑定与一个动作,调用接收者相应的操作,以实现Excute。

2016-05-17 11:24:30 251

原创 设计模式之组合模式

组合模式特点:用于将对象组合成树状结构,展示出“部分--整体”的层次结构。这里,单个对象和组合对象具有相同的行为接口,使得用户对单个对象和组合对象的使用具有一致性,忽略组合对象和单个对象之间的差别。角色:Component: 抽象基类,为组合中的对象声明接口,在适当情况下实现所有类共有接口的缺省行为。Leaf: 在组合中表示叶节点子类,叶节点没有子节点,并定义其行为。

2016-05-16 22:05:37 235

原创 设计模式之桥接模式

桥接模式特点:多对多的关系(多维元素在变化),仅用继承实现不太合理。Bridge用于将表示和实现解耦,两者可以独立的变化.角色:Abstraction::Operation():定义要实现的操作接口。在Abstraction类中维护一个Implement类指针(成员变量),需要采用不同的实现方式的时候只需要传入不同的Implement派生类就可以了。Implement:

2016-05-16 20:01:46 236

原创 设计模式之迭代器模式

迭代器模式特点:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。角色:迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口。具体迭代器角色(Concrete Iterator):具体迭代器角色要实现迭代器接口,并要记录遍历中的当前位置。集合角色(Aggregate):集合角色负责提供创建具体迭代器角色的接口。具体集合角色

2016-05-13 21:56:43 237

原创 设计模式之装饰模式

装饰模式题外话:对一个类a进行功能性增强一般有一下几个方法:1.直接对类a中代码进行修改;2.创建一个新类,让它去继承类a;3.进行内部关联,创建一个新类,让其包含一个a类变量。角色:Component:定义一个对象接口,可以给这些对象动态地添加职责;ConcreteComponent:定义一个具体的Component,继承自Component,重写了Compo

2016-05-13 17:29:04 245

原创 设计模式之代理模式

代理模式特点:a类(proxy类)中包含b类(realsubject类),a,b类实现协议类(subject类,即共同接口)。角色:subject类,定义realsubject与proxy的共用接口,这样在任何使用realsubject的地方都可以使用proxy代替。realsubject类,定义proxy所代表的实体,拥有一个和subject类相同的接口。proxy类

2016-05-13 16:15:06 235

原创 设计模式之三种工厂模式

1.简单工厂模式特点:简单工厂模式是工厂模式中最简单的一种,他可以用比较简单的方式隐藏创建对象的细节,一般只需要告诉工厂类所需要的类型,工厂类就会返回需要的产品类,但客户端看到的只是产品的抽象对象,无需关心到底是返回了哪个子类。每次添加一个产品子类都必须在工厂类中添加一个判断分支。角色:抽象工厂类抽象产品类具体产品类class Fruit{public: virtual

2016-05-13 11:13:31 231

原创 设计模式之适配器模式

http://blog.csdn.net/lcl_data/article/details/8780140适配器模式特点:将一个类的接口转换成客户希望的另一个接口。通过适配器模式可以改变已有类的接口形式。涉及到的角色:目标(Target)角色:这是客户所期待的接口。源(Adaptee)角色:需要适配的类。适配器(Adapter)角色:把源接口转换成目标接口。这一

2016-05-13 10:37:07 225

原创 设计模式之观察者模式

观察者模式特点:定义对象间的一对多的依赖关系,即多个观察者和一个主题对象键的依赖关系。当主题对象状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。即一个改变时,依赖其的其他对象也会跟着更新自己。模式中的四个角色:Subject 类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个借口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽

2016-05-12 22:06:49 226

原创 二叉树(补充)

1.二叉树的下一个节点  给定一个二叉树和其中的一个结点,请找出中序遍历(左,根,右)顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:1)当前节点的右子树存在,则在其右子树中一直向左遍历,则下一节点就是最左边的叶子节点。            2)当前节点的右子树不存在且当前节点是其父节点的左子节点,则其父节点就是下一节点。   

2016-05-12 15:48:43 440

原创 STL 源码剖析 String类

http://wenku.baidu.com/link?url=fcbPJMRI35cbrqy1vO-J10JWx4Jfjh_L_JS9U3YapgF8bkU6_YAVLyZqHlT7_9gBd_RR_bNUjSyCsTkk_MRCrcJwRp6LvVKcHj6kUAD-iIWhttp://blog.csdn.net/moxiaomomo/article/details/6411584

2016-05-11 21:49:12 297

原创 单例模式

单例模式:只能实例化一个对象的类特点:1)构造函数私有化2)一个指向唯一实例的私有的静态指针变量3)一个静态的公有函数来获取唯一实例1.懒汉式class Singleton{private: Singleton(){//构造函数私有化 cout<<"execute"<<endl; }public: static Singleton *GetInsta

2016-05-05 22:08:50 203

原创 字符串匹配之KMP算法

http://blog.csdn.net/v_july_v/article/details/70418271.暴力匹配法int ViolentMatch(char* s, char* p) { int slen=strlen(s); int plen=strlen(p); int i=0,j=0; while(i<slen && j<plen){ if(p[j]==s[i])

2016-05-04 20:37:23 223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除