__七把刀__

新的文章请移步简书查看 http://www.jianshu.com/u/4d4a2f26740b

正则表达式基础

正则表达式基础 正则表达式工作中会经常用到,只是很少去系统的总结其中的一些基础的东西,导致有时候容易疏忽,上次修复一个url跳转的漏洞就考虑的简单,写错了正则,所以还是写篇文章来系统总结一下。正则表达式所有的编程语言几乎都是支持的,用于处理字符串匹配。大概流程就是根据正则表达式模式字符串,然后根...

2014-11-23 17:36:20

阅读数 1772

评论数 0

twitter面试题之装水问题

据说这是twitter的一个面试题,不过,去年找工作的时候我的一个同学在面试微软的时候也有问到这个问题。很有意思的一个题目,当时我也没有去深究到底怎么实现比较好,前几天在伯乐在线上面看到了这篇文章面试题分析:我的Twitter技术面试失败了, 才知道这个解法原来很简单,只是刚开始没怎么看懂,比较绕...

2013-11-09 20:28:17

阅读数 2721

评论数 3

判定两棵二叉树是否同构

题目描述 给定两棵二叉树,根结点为t1和t2,判定这两棵二叉树是否同构。所谓二叉树同构就是指它们的结构相同。   分析 为了判定是否同构,可以考虑递归来解决。代码比较简单,如下所示 bool isomorphism(Node* t1, Node* t2) { if(...

2012-10-13 21:03:15

阅读数 2872

评论数 0

完全二叉树的判定

问题描述 判定一棵二叉树是否是完全二叉树。二叉树定义如下: struct node { int data; struct node* left; struct node* right; }; typedef struct node Bina...

2012-10-05 23:08:41

阅读数 2004

评论数 0

找出二叉树中最大的子树,且子树为二叉搜索树

题目 找出二叉树中最大的子树,该子树为二叉搜索树。所谓最大的子树就是指结点数目最多的子树。 分析 该题目是要找出二叉树中最大的子树,该子树必须是二叉搜索树(BST)。子树的概念需要重点关注一下,以下面一棵二叉树为例          ____10____ / ...

2012-10-05 22:16:09

阅读数 2823

评论数 0

二叉树中节点的最大距离

《编程之美: 求二叉树中节点的最大距离》的另一个解法 原文地址:http://www.cnblogs.com/miloyip/archive/2010/02/25/1673114.html 昨天花了一个晚上为《编程之美》,在豆瓣写了一篇书评《迟来的书评和感想──给喜爱编程的朋友》。书评...

2012-10-05 20:03:37

阅读数 1625

评论数 0

出栈数目

题目描述 已知一个入栈序列,试求出所有可能的出栈序列数目。例如入栈序列为1,2,3,则可能的出栈序列有5种:1 2 3,1 3 2 ,2 1 3,2 3 1,3 2 1。   分析 要求解出栈序列的数目,还算比较容易的。已经有很多文章分析过这个问题,最终答案就是卡特兰数,也就是说n个元...

2012-10-05 12:42:49

阅读数 2016

评论数 2

给定一个字符数组,存储有R、G、B字符,将所有字符按照RGB顺序排序

这个题目隐约是在某个博客上看到过,后来书签掉了,一直找不到原文,所以只好自己写了一个解法,但愿没有出错。 题目描述 已知一个字符数组,其中存储有R、G、B字符,要求将所有的字符按照RGB的顺序进行排序。比如给定一个数组为char s[] = "RGBBRGGBGB",则排序...

2012-10-04 21:46:18

阅读数 3647

评论数 2

比特位操作算法题汇总

涉及比特位操作的算法题有很多,本文对其中常见的一些进行汇总,所有资源来自网络。 一、判断一个正整数是否是2的整数次幂 判断一个整数N是否是2的整数次幂,这是个很常见的问题。比如4、8等都是2的整数次幂,而6不是。 解法1)一个基本的解法是设定i=1开始,循环乘以2直到i>=n,然后判断...

2012-10-04 17:14:36

阅读数 4628

评论数 7

1的数目

题目描述 给定一个十进制正整数N,求出从1到N的所有整数中包含1的个数。比如给定N=23,则包含1的个数为13。其中个位出现1的数字有1,11,21,共3个,十位出现1的数字有10,11...19共10个,所以总共包含1的个数为3+10 = 13个。   自然的解法 最自然的想法莫过于...

2012-10-03 23:01:04

阅读数 1301

评论数 0

不要被阶乘吓倒

题目描述 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?(该题取自《编程之美》) 分析求解 如果N!= K*10^M,且K不能被10整除,则N!末尾有M个0。考虑N!可以进行质因数分解,N!= (2^X) * (3^Y) * (5^Z)..., 则由于10 = 2*5,所以0的个...

2012-10-03 19:19:05

阅读数 1405

评论数 0

最大的二阶子矩阵

转载自http://blog.csdn.net/zhanxinhang,作者:花心龟的扮演者ZhanHang 题:求一个矩阵中最大的二维子矩阵(元素和最大).如:           1 2 0 3 4           2 3 4 5 1           1 1 5 3...

2012-10-03 15:30:20

阅读数 1697

评论数 0

最大连续子序列乘积

问题描述 给定一个整数序列(可能有正数,0和负数),求它的一个最大连续子序列乘积。比如给定数组a={3, -4, -5, 6, -2},则最大连续子序列乘积为720,即3*(-4)*(-5)*6=720。 分析 求最大连续子序列乘积与最大连续子序列和问题有所不同,因为其中有正有负还有可能有0...

2012-10-01 22:27:12

阅读数 6197

评论数 10

最大连续子序列和

最大连续子序列和问题是个很老的面试题了,最佳的解法是O(N)复杂度,当然其中的一些小的地方还是有些值得注意的地方的。这里还是总结三种常见的解法,重点关注最后一种O(N)的解法即可。需要注意的是有些题目中的最大连续子序列和如果为负,则返回0;而本题目中的最大连续子序列和并不返回0,如果是全为负数,则...

2012-10-01 18:05:44

阅读数 35814

评论数 20

中缀表达式转换为后缀表达式

一、后缀表达式求值 后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。假定待求值的后缀表达式为:6  5  2  3  + 8 * + 3  +  *,则其求值过程如下: 1)遍历表达式,遇到的数字首先放入栈中,此时栈如下所示: 2)接着读到“+”,则弹出3和2,执行3+2,计算结果等...

2012-09-20 21:34:02

阅读数 81875

评论数 52

最长回文子串

题目描述 给定一个字符串,找出该字符串的最长回文子串。回文字符串指的就是从左右两边看都一样的字符串,如aba,cddc都是回文字符串。字符串abbacdc存在的回文子串有abba和cdc,因此它的最长回文子串为abba。 一个容易犯的错误 初看这个问题可能想到这样的方法:对字符串...

2012-09-17 15:36:53

阅读数 6940

评论数 12

链表模拟加法问题

题目描述 给定两个链表,每个链表的结点值为数字的各位上的数字,试求出两个链表所表示数字的和,并将结果以链表形式返回。 链表的结点定义如下: typedef struct node *pNode; struct node { int data; struct node *next; }; ...

2012-09-14 11:36:04

阅读数 1422

评论数 2

最大滑动窗口

题目描述 给定一个数组A[],有一个大小为w的滑动窗口,该滑动窗口从最左边滑到最后边。在该窗口中你只能看到w个数字,每次只能移动一个位置。我们的目的是找到每个窗口w个数字中的最大值,并将这些最大值存储在数组B中。 例如数组A=[1 3 -1 -3 5 3 6 7], 窗口大小w为3。则窗口...

2012-09-11 17:38:03

阅读数 4083

评论数 2

和为N的连续正整数序列

题目 输入一个正整数数N,输出所有和为N连续正整数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。 一种运用数学规律的解法 假定有k个连续的正整数和为N,其中连续序列的第一个数为x,则有x+(x+1)+(x+2)+...

2012-09-11 15:10:57

阅读数 1828

评论数 0

二叉搜索树转换成有序的双向循环链表(一)

题目描述 给定一棵二叉排序树(BST),将该树转换成一棵双向循环链表。请看下面的图示说明,你可以更清楚的了解题意。 BST的结构定义如下: struct node { int data; struct node* left; struct node* right; }...

2012-09-03 22:46:53

阅读数 2855

评论数 0

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