芒果集
文章平均质量分 67
caicaiatnbu
这个作者很懒,什么都没留下…
展开
-
[编程之美-07]最长回文子串
[Problem Description] 给定一个字符串,求它的最长回文子串的长度。[Sample Input] abcd abbadef defabaa[Sample Output] 1 4 3基本解法:回文字符串的概念我们已经在[编程之美-06]字符串回文判断 这篇博文中已经做了介绍,此题是让我们找出一个字符串中最长的回文字符串。假设这个字符串的长度为n,这n个都是一个回文字符串原创 2017-05-14 00:25:56 · 1758 阅读 · 0 评论 -
[编程之美-11]把二元查找树变成为排序的双向链表
题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16 转换成双向链表: 4=6=8=10=12=14=16。首先我们定义的二元查找树节点的数据结构如下:struct BSTreeNode{ int m_nValue; //原创 2017-08-04 21:41:02 · 1682 阅读 · 0 评论 -
[编程之美-12]在二元树中找出和为某一值的所有路径
题目:输入一个整数和一棵二元树。 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。 打印出和与输入整数相等的所有路径。 例如输入整数22 和如下二元树 10 / \ 5 12 / \ 4 7 则打印出两条路径:10, 12 和10, 5, 7。 二元树节点的数据结构定义为:struct BinaryTreeNode // a node原创 2017-08-04 21:42:41 · 1722 阅读 · 0 评论 -
[编程之美-13]判断整数序列是不是二元查找数的后序遍历结果
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。 如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / / 6 10 / / / / 5 7 9 11 因此返回true。 如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。原创 2017-08-04 21:44:12 · 1624 阅读 · 0 评论 -
[编程之美-14]求二叉树中节点的最大距离
题目:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义”距离”为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离. 例如: 10 / \ 5 12 / \ 4 7 这棵树的话,最大距离为3.分别路径为4,5,10,12共3条边,7,5,10,12共3条边,所以最大距离为3.递归的思想,分别考虑左右子树的,从根节点原创 2017-08-04 21:45:39 · 1735 阅读 · 0 评论 -
[编程之美-15]输入一颗二元查找树将该树转换为它的镜像
题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / / 6 10 / / / / 5 7 9 11输出: 8 / / 10 6 / / / / 11 9 7 5定义二元查找树的结点为:struct BSTreeNode原创 2017-08-04 21:47:47 · 1658 阅读 · 0 评论 -
[编程之美-16]层序打印二元树,每层打印一行
题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。 例如输入:8/ \6 10/ \ / \5 7 9 11输出8 6 10 5 7 9 11 我们增加一下难度,我们打印如下的结果: 8 6 10 5 7 9 11 看到这里大家已经知道我们是怎么打印的吧。按行打印。思想:层序遍历的思想,就是引入las原创 2017-08-04 22:46:29 · 1686 阅读 · 0 评论 -
[编程之美-17]求二元树的度
题目:输入一棵二元树的根结点,求该树的深度。 从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 例如:输入二元树: 8 / / 6 10 // // 5 7 9 11 输出该树的深度3。 二元树的结点定义如下:struct SBinaryTreeNode // a node of the binary tree{原创 2017-08-05 00:02:31 · 1688 阅读 · 0 评论 -
[编程之美-18]进制均值
【题目描述】尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题,现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示一个数,如十进制数123表达为16进制时只包含7、11(B),用八进制表示为1、7、3,按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11。小B感兴趣的是,一个数A按2到A...原创 2018-04-11 19:47:15 · 1591 阅读 · 0 评论 -
[编程之美-10]面试当中的智力题(不定期更新)
[版权说明] 编程之美系列算法题集参考: 左程云 著《程序员代码面试指南IT名企算法与数据结构题目最优解》 July 著《编程之法面试和算法心得》 何海涛 著《剑指offer》 微软编程之美小组 著《编程之美》 部分题目摘选PAT、HDOJ、POJ以及各大互联网公司Google,BAT等面试题集。博主采用C/C++语言实现(有些题目的解法进行优化)。希望编程之美系列原创 2017-06-07 23:44:55 · 4215 阅读 · 0 评论 -
[编程之美-09]判断两个字符串是否互为变形词
[版权说明] 编程之美系列算法题集参考: 左程云 著《程序员代码面试指南IT名企算法与数据结构题目最优解》 July 著《编程之法面试和算法心得》 何海涛 著《剑指offer》 微软编程之美小组 著《编程之美》 部分题目摘选PAT、HDOJ、POJ以及各大互联网公司Google,BAT等面试题集。博主采用C/C++语言实现(有些题目的解法进行优化)。希望编程之美系列博文没有侵犯版权!(若原创 2017-05-14 00:52:43 · 1965 阅读 · 0 评论 -
[编程之美-08]字符串中数字子串的求和
[Problem Description] 给定一个字符串str,求其中全部数字串所代表的数字之和。 要求: 1. 忽略小数点字符,例如”A1.3”,其中包含两个数字1和3 2. 如果紧贴数字子串的左侧出现字符”-“,当连续出现的数量为奇数时,则数字视为负数,连续出现的数量为偶数时,则数字视为正数。例如,”A-1BC–12”,其中包含数字为-1和12.[Sample Input] A1CD原创 2017-05-14 00:34:16 · 1809 阅读 · 0 评论 -
[编程之美-02]字符串的包含问题
[Problem Description] 给定一长字符串 a 和一段字符串 b 。请问, 如何最快的判断出短字符串 b 中的所有字符是否都在长字符串 a 中。 [Sample Input] ABCD BAD ABCD BCE ABCD AA[Sample Output] true false true基本解法:我们遍历字符串b,依次判断b中的每个字符是不是的都在字符串a原创 2017-05-09 19:28:52 · 1681 阅读 · 0 评论 -
[编程之美-03]字符串移位包含的问题
[Problem Description] 给定两个字符串s1和s2(s1和s2用空格隔开,左边字符串是s1,右边字符串是s2),要求判定s2是否能够被s1做循环移位(rotate)得到的字符串包含。[Sample Input] AABCD BCDAA ABCD ACBD[Sample Output] true false基本解法:我们可以把s1循环移位的所有可能都枚举出来,然后逐一与s2原创 2017-05-09 22:19:27 · 1817 阅读 · 0 评论 -
[编程之美-04]字符串的全排列
[题目描述] 输入一个字符串,打印出改字符串中字符的所有排列。 [Sample Input] abc[Sample Output] abc acb bac bca cab cba基本解法:典型的递归问题,假设这里输入的字符串(包含n个字符),依次先将第 1 位(一共有n种选择,不考虑重复问题)固定住,剩下的(第2位到第n位)变成规模为 n-1 的问题,依次再去固定第原创 2017-05-09 23:09:55 · 1815 阅读 · 0 评论 -
[编程之美-05]字符串转换成整数
[Problem Description] 输入一个由数字组成的字符串,请把它转换成整数并输出。不能使用库函数atoi。[Sample Input] 123 [Sample Output] 123基本解法:这道题原理不难,在这里就不解释了,面试官在于考察你的写的函数是否注意到输入的可能不是由数字组成的字符串,是否考虑到转换到整数后产生上溢和下溢。我们知道最大的int类型的整数是0X7ffff原创 2017-05-10 00:18:09 · 1945 阅读 · 0 评论 -
[编程之美-06]字符串回文判断
[Problem Description] 给定一个字符串,如何判断这个字符串是否是回文串?[Sample Input] ABBCBBA ABCA ABBA[Sample Output] ture false true基本解法:这道面试题解法很清晰,只有两种基本解法,一种是从中间往两边扫描判断;另外一种是从两边往中间扫描判断。没有更高效的解法了。代码如下:#include<iostre原创 2017-05-10 23:58:53 · 1956 阅读 · 0 评论 -
[编程之美-19]集合
【题目描述】给定两个集合,要求{A}+{B}注:同一个集合中不会有两个相同的元素。【输入】多组(不超过5组)数据。每组输入数据分为三行,第一行又两个数字n,m(0<n,m<10000),分别表示集合A和集合B的元素个数。后两行分别表诉集合A和集合B。每个元素为不超出int范围的整数,每个元素之间有一个空格隔开。【输出】针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元...原创 2018-04-11 20:05:34 · 1630 阅读 · 0 评论