前言
前两天有群友在说,去华为面试的时候遇到了机试部分,但是没有提前做准备,导致凉凉了,所以小编连忙准备了一些各大厂的机试题,以便不时之需。
一:字符串最后一个单词的长度:
题目:输入为数个单词,以空格隔开;要求输出最后一个单词的长度。
思路:读入字符串,求出字符串具体长度l,然后指针从后往前直到指向空格,记录此时的下标i,则最后一个字符串的长度为l+1-i
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
二:计算字符个数
题目:写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
思路:注意到不区分大小写,查询ASCII码得知,大写字母与小写字母相差32(如A其值为65,而a其值为97,其他类推),所以便利数组时,查询条件除了s[i]==a还要加上“或(s[i]+32)==a或(s[i]-32)==a"
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
三:明明的随机数
题目:实际上就是输入多行数据,第一个为该行个数,剩下的是数据(注意是循环输入)要求将输入的数据排序去重(注意到数值在0到1000,而且都是整数。
思路:由于输入的都是整数且有范围限制,所以最多的输出就是从0到1000全输出,所以申请一个a[1001]已经足够,譬如输入7则a[7]==1,然后输出时便利标记数组,为一的输出数组下标即可。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|