就像网上说的一样,一般进入互联网大厂,算法考核是必备的。华为算是中国软件公司中非常厉害的存在了。因此华为的算法面试题对于我们来说,有一定的参考价值。这篇文章,是我日常学习以及收集资料时,总结的一些华为的算法面试题目,这里和大家分享一下,希望对感兴趣的小伙伴有一定的帮助。
华为算法面试
题目描述:输入一行字符串,非空,长度小于5000,单词之间以空格隔开。求最后一个单子的长度。例如:Hello World则输出长度为5。
这道题目的整体难度不是很难,相信很多小伙伴都能做出来。这里我和大家分享一下其中的一种解法。用JAVA代码的实现方式如下图所示:
计算字符串最后一个单词的长度
题目描述:写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
这道题目难度也不是很难,用来求取字符串出现的次数。相比第一道题目,这道题目可能代码会长一些,但是其实算法思路不是很难的。用Java代码实现的代码如下:
求字符串中某个字符出现的次数
题目描述:连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
本道题目主要是做字符串拆分,将一个字符串按照8的倍数来拆分。不足的按照后面补0来处理。相信很多小伙伴都有思路了吧。首先判断字符串是否是8的倍数,然后不是的话,补足0即可,紧接着按照8的倍数进行拆分即可。Java实现代码如下:
字符串拆分题目
题目描述:输入一个正整数,按照从小到大的顺序输出它的所有质因子(如180的质因子为2 2 3 3 5 ),要求最后一个数后面也要有空格。
本道题目的重点在于理解质因子是什么意思,质因子(或质因数)在数论里是指能整除给定正整数的质数。如果还不懂的小伙伴可以查看百度百科哦。只要明白了质因子的概念,那么本道题目也就没有什么难度了。废话不说,直接上代码:
求一个整数的所有质因子
题目描述:数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行 * 输出。
这道题目主要用于判断索引值相同的值的求和运算,在一些语言中,已经有了实现方式,这里我们也可以根据自己的思路进行代码编写,实现这个方法。本道题目的Java代码实现如下:
数据表相同索引值的求和运算
上面的代码介绍了一些华为面试题中的字符串以及数值的算法题目。这些题目其实整体难度不大,但是却可以通过代码优化,考查面试中的算法能力。由于篇幅原因,这里其他的一些算法,就不再分享了,感兴趣的小伙伴,可以私信或者关注我。我会把源代码分享出来,当然还有其他的一些题目也在其中。
其他题目还包括但不限于:
希望通过一些算法题目的分享和学习,提升自己的算法水平,同时也可以通过算法编程,强化自己的编程能力。当然,这些算法题目,尽量不要复制粘贴,有条件的话,还是自己手动验证一下,才会有更好的效果。