自动补足算法是什么_程序算法设计,华为面试题中的算法考了这些内容

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

bbe48685ba686e37c0701b5e2b9bcc98.png

华为算法面试

题目一:计算字符串最后一个单词的长度

题目描述:输入一行字符串,非空,长度小于5000,单词之间以空格隔开。求最后一个单子的长度。例如:Hello World则输出长度为5。

这道题目的整体难度不是很难,相信很多小伙伴都能做出来。这里我和大家分享一下其中的一种解法。用Java代码的实现方式如下图所示:

8bc216498e42a32cf56e9af0df994267.png

计算字符串最后一个单词的长度

题目二:求字符串中某个字符出现的次数

题目描述:写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

这道题目难度也不是很难,用来求取字符串出现的次数。相比第一道题目,这道题目可能代码会长一些,但是其实算法思路不是很难的。用Java代码实现的代码如下:

a3722992797794369751a687ffd8e6fc.png

求字符串中某个字符出现的次数

题目三:字符串拆分

题目描述:连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

本道题目主要是做字符串拆分,将一个字符串按照8的倍数来拆分。不足的按照后面补0来处理。相信很多小伙伴都有思路了吧。首先判断字符串是否是8的倍数,然后不是的话,补足0即可,紧接着按照8的倍数进行拆分即可。Java实现代码如下:

c0d05459be4daf677a1b60350689db77.png

字符串拆分题目

题目四:求一个整数的所有质因子

题目描述:输入一个正整数,按照从小到大的顺序输出它的所有质因子(如180的质因子为2 2 3 3 5 ),要求最后一个数后面也要有空格。

本道题目的重点在于理解质因子是什么意思,质因子(或质因数)在数论里是指能整除给定正整数的质数。如果还不懂的小伙伴可以查看百度百科哦。只要明白了质因子的概念,那么本道题目也就没有什么难度了。废话不说,直接上代码:

5ce3c2b506dbe3e17450d3ad99b4e0f1.png

求一个整数的所有质因子

题目五:数据表相同索引值的求个运算

题目描述:数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行 * 输出。

这道题目主要用于判断索引值相同的值的求和运算,在一些语言中,已经有了实现方式,这里我们也可以根据自己的思路进行代码编写,实现这个方法。本道题目的Java代码实现如下:

2b9a44caafff2865286ceb0638759aa1.png

数据表相同索引值的求和运算

上面的代码介绍了一些华为面试题中的字符串以及数值的算法题目。这些题目其实整体难度不大,但是却可以通过代码优化,考查面试中的算法能力。由于篇幅原因,这里其他的一些算法,就不再分享了,感兴趣的小伙伴,可以私信或者关注我。我会把源代码分享出来,当然还有其他的一些题目也在其中。

其他题目还包括但不限于:

  1. 提取不重复的数字;
  2. 字符串个数统计;
  3. 数字颠倒;
  4. 字符串翻转;
  5. 句子逆序;
  6. 字符串的连接最长路径查询;
  7. 求int型正整数在内存中存储时1的个数。

希望通过一些算法题目的分享和学习,提升自己的算法水平,同时也可以通过算法编程,强化自己的编程能力。当然,这些算法题目,尽量不要复制粘贴,有条件的话,还是自己手动验证一下,才会有更好的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值