2016年5月2日

最小编辑代价

摘要: 最小编辑代价问题: 对于两个字符串A和B,我们需要进行插入、删除和修改操作将A串变为B串,定义c0,c1,c2分别为三种操作的代价,请设计一个高效算法,求出将A串变为B串所需要的最少代价。 给定两个字符串A和B,及它们的长度和三种操作代价,请返回将A串变为B串所需要的最小代价。保证两串长度均小于等于 阅读全文

posted @ 2016-05-02 17:26 Brainer-Gao 阅读(416) 评论(0) 推荐(0) 编辑

2016年5月1日

编辑距离

摘要: 编辑距离问题: 给定两个字符串,对两个字符串进行增删改操作,使用最少的次数使得两个字符串相同,使用的最少次数即为编辑距离。 程序实现: 运行结果: 转载请注明出处: C++博客园:godfrey_88 http://www.cnblogs.com/gaobaoru-articles/ 阅读全文

posted @ 2016-05-01 18:15 Brainer-Gao 阅读(164) 评论(0) 推荐(0) 编辑

字符串的全排列

摘要: 字符串的全排列问题: 给定字符串S[0...N-1],设计算法,枚举字符串的全排列。 1、无重复字符串全排列非递归算法 程序实现: 运行结果: 说明:在每次递归前需要保证字符串的顺序不变,因此有每次的替换过程。 2、有重复字符串队规算法 程序实现: 运行结果: 说明:本算法时间复杂度能达到O((n+ 阅读全文

posted @ 2016-05-01 16:57 Brainer-Gao 阅读(324) 评论(0) 推荐(0) 编辑

最长公共子序列

摘要: 最长公共子序列: 求两个序列中最长的公共子序列算法,要区别于最长公共子串(其要求连续)。 如:字符串acdfg与adfc的最长公共子序列为adf。 假设c(i,j)记录序列Xi和Yj的最长公共子序列的长度,满足下列公式: 程序实现: 运行结果: 说明:事实上,两个字符串可能存在多个子序列长度相同并且 阅读全文

posted @ 2016-05-01 15:24 Brainer-Gao 阅读(254) 评论(0) 推荐(0) 编辑

字符串循环左移

摘要: 字符串循环左移: 给定一个字符串,要求把S的前k个字符移动到S的尾部,如把字符串"abcdef"前面的2个字符'a','b'移动到字符串的尾部,得到新字符"cdefab",即字符串循环左移k位。 程序实现: 运行结果: 转载请注明出处: C++博客园:godfrey_88 http://www.cn 阅读全文

posted @ 2016-05-01 14:33 Brainer-Gao 阅读(289) 评论(0) 推荐(0) 编辑

哈希表实现

摘要: 哈希表实现: 使用BKDRHash作为基础的哈希函数,同时使用拉链法作为冲突处理方法,实现哈希表的插入和查找操作。 哈希函数BKDRHash实现如下: 处理冲突的方法有拉链法,开放定址和再哈希法。各种冲突方法如何实现,可以自行查资料进行学习,这里不做详细介绍。另附一张图,说明拉链法(说明版权:来源小 阅读全文

posted @ 2016-05-01 12:20 Brainer-Gao 阅读(186) 评论(0) 推荐(0) 编辑

2016年4月30日

收集雨水问题

摘要: 直方图收集雨水问题: 给定n个非负整数,表示直方图的方柱的高度,同时,每个方柱的宽度假定都为1,若这样形状的容器收集雨水,可以盛多少雨水。 如:输入0,1,0,2,1,0,1,3,2,1,2,1;返回为6. 如图所示: 程序实现: 运行结果: 转载请注明出处: C++博客园:godfrey_88 h 阅读全文

posted @ 2016-04-30 19:22 Brainer-Gao 阅读(307) 评论(0) 推荐(0) 编辑

直方图最大矩阵面积

摘要: 直方图最大矩阵面积法: 给定n个非负整数,表示直方图的方柱的高度,同时,每个方柱的宽度假定都为1,找出直方图中最大的矩形面积。 如:给定高度为:2,1,5,6,2,3,最大面积为10. 程序实现: 运行结果: 转载请注明出处: C++博客园:godfrey_88 http://www.cnblogs 阅读全文

posted @ 2016-04-30 18:45 Brainer-Gao 阅读(977) 评论(0) 推荐(0) 编辑

逆波兰表达式

摘要: 逆波兰表达式: 计算给定的逆波兰表达式的值,有效操作只有加减乘除,每个操作数都为整数。 如: "2","1","+","3","*" : 9; (2+1)*3 "4","13","5","/","+" : 6; 4+(13/5) 程序实现: 运行结果: 转载请注明出处: C++博客园:godfrey 阅读全文

posted @ 2016-04-30 17:04 Brainer-Gao 阅读(256) 评论(0) 推荐(0) 编辑

最长括号匹配问题

摘要: 最长括号匹配: 给定字符串,仅包含左括号'('和右括号')',它可能不是括号匹配的,设计算法找出最长匹配的括号子串,返回该字串的长度。 如: (() : 2 ()() : 4 ()(()) : 6 ()(())) : 6 (((()())) : 8 1、首先采用栈的存储方式来解决这个问题: 假设起始 阅读全文

posted @ 2016-04-30 15:10 Brainer-Gao 阅读(795) 评论(0) 推荐(0) 编辑

导航