1.自定义实现字符串转为整数的算法,例如把“123456”转成整数123456.(输入中可能存在符号,和数字)

//返回结果的有效标志
enum Status {VALID,IN_VALID};
int gStatus = VALID;
int strToInt(const char* str)
{
long long result = 0;//保存结果
gStatus = IN_VALID; //每次调用时都初始化为IN_VALID
if(str != NULL)
{
const char* digit = str;
bool minus = false;
if(*digit == '+')
digit++;
else if(*digit == '-')
{
digit++;
minus = true;
}
while(*digit != '\0')
{
if(*digit >= '0' && *digit <= '9')
{
result = result * 10 + (*digit -'0');
//溢出
if(result > std::numeric_limits<int>::max())
{
result = 0;
break;
}
digit++;
}
//非法输入
else
{
result = 0;
break;
}
}
if(*digit == '\0')
{
gStatus = VALID;
if(minus)
result = 0 - result;
}
}
return static_cast<int>(result);
}  

2. 给出一棵二叉树的前序和中序遍历,输出后续遍历的结果,假设二叉树中存储的均是ASCII码。如前序:ABDHECFG,中序:HDBEAFCG,则输出后序为: HDECFGCA,改正为:HDECFGBA,再次改正HDEBFGCA

思路:先利用前序和中序构建出二叉树,然后后序遍历输出结果

/**
*返回二叉树的根节点
*preOrder:前序遍历序列
*inOrder:中序遍历序列
*len:节点数目
*/
Node* getBinaryTree(char* preOrder, char* inOrder, int len)
{
if(preOrder == NULL || *preOrder == '\0' || len<=0)
return NULL;
Node* root = (Node*) malloc(sizeof(Node));
if(root == NULL)
exit(EXIT_FAILURE);
//前序遍历的第一个节点就是根节点
root->data = *preOrder;
int pos = 0;//找到根节点在中序遍历中的位置,其值也代表了左子树的节点数目
while(true)
{
if(*(inOrder+pos) == root->data)
break;
pos++;
}
//通过递归找到左子树和右子树,注意子树的前序中序的下标的计算
if(pos == 0)
root->lchild = NULL;
else
root->lchild = getBinaryTree(preOrder+1, inOrder, pos);
if(len-pos-1 == 0)
root->rchild = NULL;
else
root->rchild = getBinaryTree(preOrder+pos+1, inOrder+pos+1,len-pos-1);
return root;
}
/**
*后续遍历二叉树
*
*/
void postOrder(Node* root)
{
if(root == NULL)
return;
postOrder(root->lchild);
postOrder(root->rchild);
printf("%c", root->data);
}
/**
*根据前序遍历和中序遍历输出后续遍历
*
*/
void printPostOrderViaPreOrderAndInorder(char* preOrder, char* inOrder)
{
Node* root = getBinaryTree(preOrder, inOrder, strlen(preOrder));
postOrder(root);
}  

3. 给出了一个n*n的矩形,编程求从左上角到右下角的路径数(n > =2),限制只能向右或向下移动,不能回退。例如当n=2时,有6条路径。

一是利用数学知识,从左上角到右下角总共要走2n步,其中横向要走n步,所以总共就是C2n~n。

二是利用递归实现

/**
*返回总路径数
*参数m:表示矩形的横向格子数
*参数n:表示矩形的纵向格子数
*/
int getTotalPath(int m, int n)
{
//如果横向格子数为1,则类似“日”字,此时路径数为纵向格子数加1
if(m == 1)
return n + 1;
//如果纵向格子数为1,此时路径数为横向格子数加1
if(n == 1)
return m + 1;
//由于从当前点出发,只能向右或向下移动:
//向右移动,则接下来就是getTotalPath(m-1, n)的情形
//向下移动,则接下来就是getTotalPath(m, n-1)的情形
return getTotalPath(m-1, n) + getTotalPath(m, n-1);
}  

转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/12209183

暴风影音2014笔试算法题汇总相关推荐

  1. 去哪儿网2014笔试算法题汇总

    1.写一个函数,转换相对路径为绝对路径,比如:/home/abs/../temp/new/../,输出路径为:/home/temp. 参考代码: //写一个函数,转换相对路径为绝对路径,比如:/hom ...

  2. 创新工场2014笔试算法题汇总

    1. 堆排序 #include<iostream> usingnamespace std; void SwapValue(int &m, int &n) { int tem ...

  3. 华为笔试c语言,华为笔试算法题汇总

    本文为大家分享了华为2014笔试4道算法题,供大家参考,具体内容如下 1.通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤 ...

  4. 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」之 字符串处理+动态规划 合集!

    Attention 秋招接近尾声,我总结了 牛客.WanAndroid 上,有关笔试面经的帖子中出现的算法题,结合往年考题写了这一系列文章,所有文章均与 LeetCode 进行核对.测试.欢迎食用 本 ...

  5. 运维工程师历年企业笔试真题汇总

    https://www.nowcoder.com/test/13484/summary    运维工程师能力评估 https://www.nowcoder.com/test/19288/summary ...

  6. LeetCode 547. Friend Circles--Python解法--笔试算法题

    题目地址:Friend Circles - LeetCode There are N students in a class. Some of them are friends, while some ...

  7. 【实习笔试面试题】2013网易互联网实习笔试算法题-找出最大连续自然数个数

    找出最大连续自然数个数 搜集者:江南烟雨 E-Mail:xiajunhust@gmail.com 本题为网易互联网暑期实习生笔试算法题. 凭记忆记录下来的题目,如违反网易版权请邮件联系,本人会删除. ...

  8. Re: 一著名软件公司的java笔试算法题!

    主 题: Re: 一著名软件公司的java笔试算法题! 作 者:   szlhj () 等 级:   信 誉 值:   95 所属论坛:   Java J2SE / 基础类 问题点数:   20 回复 ...

  9. 秋招笔试算法题——电容充电

    秋招笔试算法题--电容充电 牛客网<笔试真题精选2019> 字节跳动2018秋招笔试题4 [题目描述]有一台用电容组成的计算器,其中每个电容组件都有一个最大容量值(正整数). 对于单个电容 ...

最新文章

  1. [题解]RGB Substring (hard version)-前缀和(codeforces 1196D2)
  2. 将Quartz.NET集成到 Castle中
  3. Python实现向s3共享存储上传和下载文件
  4. MySQL导出数据到文件中
  5. 计算机文化基础操作考试,(计算机文化基础上机考试操作指南.doc
  6. Rsync下行同步+inotify实时同步介绍和部署
  7. View 的 android:visibility属性的讨论
  8. Java 位运算和逻辑运算的区别
  9. 总奖池2.5万美元,Kaggle 新赛,单细胞分类与分割
  10. 开源压缩算法brotli_Google的Brotli压缩算法,C ++核心准则以及更多新闻
  11. 16_多易教育之《yiee数据运营系统》用户画像-标签体系设计篇
  12. mysql可视化界面创建表_mysql安装及可视化界面
  13. python图像处理(三)波形叠加模拟
  14. 数据中心 服务器 电压,数据中心和通信机房,需要这样的功率器件……
  15. 14----统计字符数
  16. 对物联网的感悟_物联网心得体会总结
  17. 电大计算机网考试题,电大计算机应用基础网考统考试题及答案
  18. rand()和srand()函数的用法
  19. 新建HttpServletRequest对象
  20. 数据中心机柜水冷系统中一次泵和二次泵哪个更好?

热门文章

  1. (3)风色从零单排《C++ Primer》 重要的基本类型
  2. 探路智慧未来,程大章、龚仕伟将出席2019中国智慧家庭高峰论坛
  3. C++11新特性(46)- allocator::construct可使用任意构造函数
  4. servu文件服务器备份,Serv-U的用户如何备份或者导出
  5. es6,find方法的使用
  6. centos搭建http服务器
  7. 关于TF卡、SDHC标准和 class 速度等级分析
  8. C# session使用方法
  9. 探究 Xcode 命令行用法二:xcodebuild 测试实践
  10. linux如何判断是文件还是目录