Skip to content

HuaWei机试

https://www.nowcoder.com/exam/oj

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

描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

输入:
hello nowcoder

输出:
8
inp = input().split()
print(len(inp[-1]))

HJ2 计算某字符出现次数

描述 写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

输入描述: 第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。

输出描述: 输出输入字符串中含有该字符的个数。(不区分大小写字母)

输入:
ABCabc
A

输出:
2
a_str = input().lower()
b_char = input().lower()

print(a_str.count(b_char))

HJ3 明明的随机数

描述 明明生成了 N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。

输入描述: 第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。

输出描述: 输出多行,表示输入数据处理后的结果

示例:

输入:
3
2
2
1

输出:
1
2

参考题解:

import sys

inputs = []
for line in sys.stdin:
    inputs.append(int(line))

result = sorted(list(set(inputs[1:])))
for n in result:
    print(n)

HJ4 字符串分隔

描述 •输入一个字符串,请按长度为8拆分每个输入字符串并进行输出; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

示例:

输入:
abc

输出:
abc00000

参考题解:

s = input()

idx_list = list(range(len(s))[::8])
result = [s[idx:idx+8] for idx in idx_list]

for s in result:
    print("{:0<8s}".format(s))

HJ5 进制转换

描述 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

示例:

输入:
0xAA

输出:
170

题解:

s = input()
print(format(eval(s), 'd'))

HJ6 质数因子

描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )

示例:

输入:
180

输出:
2 2 3 3 5

题解:

import math
n = int(input())
for i in range(2, int(math.sqrt(n))+1):
    while n % i == 0:
        print(i, end=' ')
        n = n // i
if n > 2:
    print(n)

HJ7 取近似值

描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。

示例1

输入:
5.5

输出:
6

示例2

输入:
2.499

输出:
2

题解:

f = float(input())

div = f * 10 // 10
mod = f * 10 % 10

if mod >= 5:
    div += 1
print(int(div))