摘要: 给字符串s1、s2,在s1中找包含s2里所有字符的最小子串。类似的问题:一串首尾相连的珠子(m个),有N种颜色(N<=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。(July,精选微软等公司数据结构+算法面试100题,40题2)----在对s1中的子串进行判断时,对每个当前字符c,擦除在s2中的含有c的字符,这样最后s2为空时,说明该子串包含s2中的所有字符。----使用myremove的方法,要求s2中没有重复字符,更多的方法以及更详细的介绍 :(July,程序员编程艺术第二章:字符串包含及相关问题扩展) 1 /* 2 * Description: give 阅读全文
posted @ 2012-10-07 20:48 dandingyy 阅读(2887) 评论(1) 推荐(0)
摘要: 转自:July精选微软等公司数据结构+算法,经典面试100题 43 题1.前序、中序、后序的递归实现就是将printf访问语句放在递归语句的前、中、后三个位置。2.非递归实现要借用栈stack来实现。 因为对于一棵树(子树)t,如果t 非空,访问完t 的根结点值后,就应该进入t 的左子树,但此时必须将t 保存起来,以便访问完其左子树后,进入其右子树的访问。 即在t 处设置一个回溯点,并将该回溯点进栈保存。在整个二叉树前序遍历的过程中,程序始终要做的工作分成俩个部分:1.当前正在处理的树(子树)2.保存在栈中等待处理的部分。//注:当栈中元素位于栈顶即将出栈时,意味着其根结点和左子树已访问完.. 阅读全文
posted @ 2012-10-07 18:47 dandingyy 阅读(420) 评论(0) 推荐(0)