技术面手撕代码的原题~


要求用C++写

楼主比较菜面试时候又比较紧张面试官又看着我写,因此当场只写出来一个通用的解法,本以为面试官会让我优化时间复杂度,结果没有,只是测试了一下我的代码,每个测试点都通过了

我的想法是,因为要求最大公共前缀嘛,结果肯定不可能比这些字符串中最短的长,所以首先求出最短的字符串长度假设长度为n,只考虑每个字符串的前n个字符,一来是避免不必要的运算,二来是避免访问字符串的时候数组越界带来不必要的bug,然后以第一个字符串为基准,每次检查剩下所有字符串的第i个字符是否与第一个字符串的第i个相等,如果出现不等,说明之前的i个字符已经不是公共前缀了,直接退出循环取前i-1个字符返回即可

面试时候写的C++代码如下:

#include<iostream>
#include<vector>using namespace std;string longestCommonPrefix(vector<string>&strs)
{int n=strs.size();//字符串个数 int min=strs[0].size();for(int i=1;i<n;i++)//求最短字符串长度 {if(strs[i].size()<min)min=strs[i].size();}int i=0;for(;i<min;i++){int sign=1;char c=strs[0][i];for(int j=1;j<n;j++){if(c!=strs[j][i]){sign=2;break;}}if(sign==2)break;}return strs[0].substr(0,i);
}

华为通用软件开发实习生面试题相关推荐

  1. 2019/04/12 华为通用软件开发工程师现场面试(offer到手)

    2019/04/12 华为通用软件开发工程师现场面试(offer到手) 时间轴 三月中旬做的笔试 3题ac两道 4/8 性格测试 4/12 现场面试 地点是 广州某家酒店,近地铁站的,中大过去也是要一 ...

  2. 华为通用软件开发面试(一二+主管面)

    华为2021秋招通软开发 机考(2020.08.24) 一面(2020.08.29) 二面(2020.08.29) 测评 主管面(2020.08.30) 总结 华为今年的招聘规模相比往年是扩大的,不同 ...

  3. 暑假实习面经 | 华为通用软件开发

    目录 一.笔试(4.15晚19-21点) 二.心理测评(4.16) 三.专业面试(5.13晚18点30-19点20) 四.业务主管面试(5.14早10点30-11点) 一.笔试(4.15晚19-21点 ...

  4. 【面经】华为-通用软件开发工程师-主管面已通过

    20210913 一面 华为陆陆续续投了好几次了,每次都没动静,感觉最少有一个多月了,终于迎来了一面. –一道算法题.有一个n*m的矩阵,每个数字代表从该位置可以走的最远步数,如果为0,则代表本位置不 ...

  5. 华为通用软件开发实习一面综合面总结

    4.15笔试,ac了一道题过了笔试 4.17电话预约面试时间在4.21-23之间 4.20确认4.21面试 4.22预约4.23下午综合面试 一.技术面试流程: 自我介绍 算法题:计算最长不重复子串的 ...

  6. 华为通用软件开发工程师面经(业务主管面挂)

    一面的时候: 手撸一段代码,题目大概是,给你一个二维整数矩阵,求最长递增序列的长度 会根据你简历上的写法,问一些,Java,C中的一些问题(本人用Python,所以答得不是很好) 二面的时候: 手撸一 ...

  7. Java软件开发实习生面试题总结

    我今天开始找实习,之前一直在做项目,主要记录下自己的面试经历和面试遇到的问题 1,第一次面试(58到家)  这次面试我是想试试水的,因为最近一直在忙着做项目,没怎么复习. 一面    1,做下自我介绍 ...

  8. 2021年4月27日 华为Cloud AI 通用软件开发实习面试(一面)

    title: 2021年4月27日 华为Cloud AI 通用软件开发实习面试(一面) tags: 面经 2021年4月27日 华为Cloud AI 通用软件开发实习面试(一面) 自我介绍(这个地方由 ...

  9. 华为无线通用软件开发 实习一面二面

    2022年秋招/春招/提前批/大厂面经整理(持续更新中~) 华为无线通用软件开发 实习一面二面 一面 50min 1.自我介绍(自己介绍了一下专业.院校.成绩.做过的项目.参加的竞赛) 2.面试官:你 ...

最新文章

  1. 为什么不能在init和dealloc函数中使用accessor方法
  2. c语言主范式与编码,超详细!终于搞明白KMP算法
  3. qchart画完以后删除_冬天的夜晚很难画?老师分步骤教你画,简单易学,收藏起来临摹...
  4. Linux系统编程20:基础IO之从内核代码深刻理解Linux是如何管理文件及文件描述符的本质是什么
  5. java做文件显示器_JavaWeb显示器
  6. 让小黑人360度旋转的制作技巧
  7. 服务器安装系统难吗,服务器安装系统难吗
  8. 三.rocketmq-console
  9. qtcpserver无法启动监听_EOS基础全家桶(四)启动节点
  10. 【C 语言】文件操作 ( fread 函数 )
  11. 星星之火-49:5G 移动边缘计算MEC快览
  12. 斯坦福NLP名课带学详解 | CS224n 第17讲 - 多任务学习(以问答系统为例)(NLP通关指南·完结)
  13. 参考文献标引方式_参考文献标注方法有哪些 为什么要标注参考文献
  14. 三分钟学会数据库, INSERT INTO 插入
  15. 中国科技大学计算机系导师,中国科学技术大学
  16. 高数_第6章无穷级数_幂级数之__阿贝尔定理
  17. 渗透测试实战指南笔记
  18. 你能编写CMS79F623的EEPROM写入数据20到地址1,并且给出具体代码
  19. 如何把word文件压缩到最小
  20. 热门的智慧养老产品有哪些?解读新政策后的超全资料整合

热门文章

  1. 在线教育行业的现状与未来
  2. 揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
  3. JavaScript标准日期、中国标准时间、时间戳、毫秒数互转
  4. c++动态规划经典算例
  5. 【vue2静态复古win95简历网页】模仿电脑状态栏实现
  6. 流程图系列:ProcessOn的快捷键及使用技巧
  7. Apk的编译打包过程
  8. 英语语法第三节(长难句分析)
  9. 对计算机技术的发展方向研究,现代计算机技术的发展方向趋势
  10. 我们如何面对权利和特权