9月份去参加华为面试,问了项目经验后,直接让写程序,问了两道题目1.完成strcpy函数 2.实现大数相加 都是基本题,但还是有比较做个总结

1. 关于strcpy的实现(10分):

【4分代码】

void strcpy(char *strDest,char *strSrc)
{while((*strDest++ = *strSrc++) != '\0');
}

【6分代码】

void strcpy(char *strDest,const char *strSrc)
{while((*strDest++ = *strSrc++) != '\0');
}

【8分代码】

void strcpy(char *strDest,const char *strSrc)

{assert((strDest!=NULL) && (strSrc!=NULL))while((*strDest++ = *strSrc++) != '\0');
}

[10分代码]

char* strcpy(char *strDest,const char *strSrc)
{char *r = strDest;assert((strDest!=NULL) && (strSrc!=NULL))while((*strDest++ = *strSrc++) != '\0');return r;
}

2.关于大数相加的实现代码如下:

#include <iostream>
#include<string>
#include<algorithm>
using namespace std;string & remove_zero(string &a)
{if (a[0] != '0')return a;int i = 0;while (i<a.length() && a[i]=='0'){i++;}a = a.substr(i, a.length() - 1);return a;
}
int main()
{string a;string b;cin >> a >> b;//去掉前导零string add1 = remove_zero(a);string add2 = remove_zero(b);//反转reverse(add1.begin(),add1.end());reverse(add2.begin(), add2.end());//相加int len1 = add1.length();int len2 = add2.length();int len = len1;if (len1 < len2){len = len2;}int carry = 0;string res = "";char cur;int i;for ( i = 0; i < len;i++){int temp1 = 0;int temp2 = 0;if (i<len1)temp1 = add1[i] - '0';if (i<len2)temp2 = add2[i] - '0';int sum = temp1+ temp2 + carry;if (sum>9){carry = 1; cur = '0' + sum - 10;}else{carry = 0;cur = '0' + sum;}res = res + cur;}//最后一位有进位if (carry==1){res += '1';}reverse(res.begin(), res.end());cout << res << endl;system("pause");return 0;
}

运行结果如下:

2017华为面试算法题小结相关推荐

  1. 2017华为软件精英挑战赛小结

    // 2017华为软件精英挑战赛小结 // 不说废话,直接上货!希望对目前的参赛者,或日后学习的人,提供一些参考和思路. #include <赛题说明.pdf>    //  见附录文件 ...

  2. 常考面试算法题类型总结(来自知乎)

    作者:牛客网 链接:https://www.zhihu.com/question/24964987/answer/200681301 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  3. Java常见的面试算法题:实现两个线程交替打印1到100的数

    Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...

  4. 常见的面试算法题:创建几个线程按顺序打印数字或者字母(多线程编程)(套用该模板即可)

    常见的面试算法题:创建几个线程按顺序打印数字或者字母(多线程编程)(套用该模板即可) 比较典型的题目,如下有: 题目一: 1.启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程 ...

  5. 力扣高频算法php_互联网公司最常见的面试算法题有哪些?

    很多时候,你即使提前复习了这些最常见的面试算法题,你依旧无法通过算法面试! 为什么?你在提前准备复习的时候,在网上找了半天相应题目的分析文章,但你看了就是不懂. 你在面试的时候,卡壳了,一时间忘了怎么 ...

  6. 【笔试面试题】腾讯2013实习生面试算法题及参考答案

    总结了一下自己遇到的以及同学遇到的面试算法题,是技术二面. 有几道题给出了参考答案,还有几道没有好的思路.路过的大侠如果有好的思路请留个言交流下呗~ 1.八数码问题:3*3的格子,有1~8个数,空了一 ...

  7. 互联网公司最常见的面试算法题大集合!

      转载于 新智元   来源:Github 编辑:元子 [导读]LeetCode是一个美国的在线编程网站,收集了各个大厂的笔试面试题,对找工作的毕业生和开发者来说,非常有价值.很多求职者都会在Leet ...

  8. 一道小面试算法题的思路

    一道小算法题的思路 有这么一道小面试算法题:给定一个长度为 n 的整数数组,下标为 i 的元素表示第 i 天某个股票的价格,每次最多持有一股,每次买卖最多一股,在最多只买卖一次的情况下(先买后卖,不考 ...

  9. C++经典面试算法题

    #include <assert.h> #include <string.h> #include <stack>// // C++ 经典面试算法题 [7/28/20 ...

  10. 阿里、华为、美团,大厂面试算法题,这些你会吗?

    名师 带你刷爆LeetCode 算法知识 讲解+训练 免费0元报名参加 在讲到 AI 算法工程师时,大部分同学关注点都在高大上的模型,一线优秀的项目.但大家往往忽略了一点,人工智能的模型.项目最终还是 ...

最新文章

  1. 美媒:中关村取代硅谷获评全球最大科技中心
  2. knn的python代码_Python代码实现KNN算法
  3. 【数据挖掘】K-Means 二维数据聚类分析 ( K-Means 迭代总结 | K-Means 初始中心点选择方案 | K-Means 算法优缺点 | K-Means 算法变种 )
  4. 为什么 Kafka 速度那么快?
  5. 假如有一款机器可以采集人的脑电波用于写作多好!
  6. Git:Rebase和Merge之间的区别,看完这篇文章你就懂了!
  7. linux配置ip地址 suse_SUSE Linux下设置IP的两种方法
  8. python txt转json_实战篇 | 用Python来找你喜欢的妹子(二)
  9. python制作简单动画_用Tkinter Python制作简单动画
  10. miniUI mini-monthpicker ie8兼容性问题
  11. canvas 边界模糊_Canvas绘制线条模糊的解决方案
  12. 优雅地修改多模块maven项目中的版本号
  13. Java的GUI学习十二(文件的打开和保存)
  14. Atitit junit最佳实践 目录 1.1. 可以在包级别建立测试,避免太多的test class 1 1.2. 但文件独立方法测试 避免建立太多的class 1 1.3. 测试方法直接从bat
  15. 猜你喜欢”推荐算法大赛冠军分享
  16. C#网络编程(五)----基于TCP的简易多客户端聊天
  17. ios视频实现H264硬编码和软编码编译ffmpeg库及环境搭建(附完整demo)
  18. 人力资源管理专业知识与实务(初级)【10】
  19. unity实现简单游戏——井字棋
  20. 程序员写文档的重要性

热门文章

  1. 【安全科普】AD域安全管理(一)
  2. 纯净版Windows7系统迅雷下载路径
  3. HTML5,不只是看上去很美(第四弹:可交互地铁线路图)
  4. SQL Server无法安装问题
  5. linux版本信息i686,i686 linux gnu
  6. android怎么oauth2公版认证,Android中腾讯微博OAuth认证(一)---获取RequestToken
  7. macbook更新系统服务器,苹果电脑如何升级系统_苹果电脑怎么更新版本-win7之家...
  8. Landsat 8数据介绍
  9. 声网Agora 孙雨润:下一代实时传输体系结构的升级与应用
  10. 4、金字塔原理:演示的逻辑(10-12)-阅读笔记