程序算法设计,华为面试题中的算法考了这些内容

就像网上说的一样,一般进入互联网大厂,算法考核是必备的 。华为算是中国软件公司中非常厉害的存在了 。因此华为的算法面试题对于我们来说,有一定的参考价值 。这篇文章,是我日常学习以及收集资料时,总结的一些华为的算法面试题目,这里和大家分享一下,希望对感兴趣的小伙伴有一定的帮助 。

程序算法设计,华为面试题中的算法考了这些内容

文章插图
华为算法面试
题目一:计算字符串最后一个单词的长度题目描述:输入一行字符串,非空,长度小于5000,单词之间以空格隔开 。求最后一个单子的长度 。例如:Hello World则输出长度为5 。
这道题目的整体难度不是很难,相信很多小伙伴都能做出来 。这里我和大家分享一下其中的一种解法 。用JAVA代码的实现方式如下图所示:
程序算法设计,华为面试题中的算法考了这些内容

文章插图
计算字符串最后一个单词的长度
题目二:求字符串中某个字符出现的次数题目描述:写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数 。不区分大小写 。
这道题目难度也不是很难,用来求取字符串出现的次数 。相比第一道题目,这道题目可能代码会长一些,但是其实算法思路不是很难的 。用Java代码实现的代码如下:
程序算法设计,华为面试题中的算法考了这些内容

文章插图
求字符串中某个字符出现的次数
题目三:字符串拆分题目描述:连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 。
本道题目主要是做字符串拆分,将一个字符串按照8的倍数来拆分 。不足的按照后面补0来处理 。相信很多小伙伴都有思路了吧 。首先判断字符串是否是8的倍数,然后不是的话,补足0即可,紧接着按照8的倍数进行拆分即可 。Java实现代码如下:
程序算法设计,华为面试题中的算法考了这些内容

文章插图
字符串拆分题目
题目四:求一个整数的所有质因子题目描述:输入一个正整数,按照从小到大的顺序输出它的所有质因子(如180的质因子为2 2 3 3 5 ),要求最后一个数后面也要有空格 。
本道题目的重点在于理解质因子是什么意思,质因子(或质因数)在数论里是指能整除给定正整数的质数 。如果还不懂的小伙伴可以查看百度百科哦 。只要明白了质因子的概念,那么本道题目也就没有什么难度了 。废话不说,直接上代码:
程序算法设计,华为面试题中的算法考了这些内容

文章插图
求一个整数的所有质因子
题目五:数据表相同索引值的求个运算题目描述:数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行 * 输出 。
这道题目主要用于判断索引值相同的值的求和运算,在一些语言中,已经有了实现方式,这里我们也可以根据自己的思路进行代码编写,实现这个方法 。本道题目的Java代码实现如下:
程序算法设计,华为面试题中的算法考了这些内容

文章插图
数据表相同索引值的求和运算
上面的代码介绍了一些华为面试题中的字符串以及数值的算法题目 。这些题目其实整体难度不大,但是却可以通过代码优化,考查面试中的算法能力 。由于篇幅原因,这里其他的一些算法,就不再分享了,感兴趣的小伙伴,可以私信或者关注我 。我会把源代码分享出来,当然还有其他的一些题目也在其中 。
其他题目还包括但不限于:
  1. 提取不重复的数字;
  2. 字符串个数统计;
  3. 数字颠倒;
  4. 字符串翻转;
  5. 句子逆序;
  6. 字符串的连接最长路径查询;
  7. 求int型正整数在内存中存储时1的个数 。
希望通过一些算法题目的分享和学习,提升自己的算法水平,同时也可以通过算法编程,强化自己的编程能力 。当然,这些算法题目,尽量不要复制粘贴,有条件的话,还是自己手动验证一下,才会有更好的效果 。

【程序算法设计,华为面试题中的算法考了这些内容】


    推荐阅读