当前位置:   article > 正文

OD机试题练习(一)_od机考题

od机考题

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

描述:计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:输出一个整数,表示输入字符串最后一个单词的长度。

示例1:
输入:hello nowcoder
输出:8
参考代码:

import sys
for line in sys.stdin:
	a = line.split()
	print(len(a[-1]))
  • 1
  • 2
  • 3
  • 4
'
运行

2. 计算某字符出现次数

描述: 写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
输入描述:第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。
输出描述:输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例:
输入:ABCabc
A
输出:2
参考代码:

import sys
tmp_list = []
for line in sys.stdin:
	tmp_list.append(line)
tmp_str = tmp_list[0]
tmp_flag = tmp_list[1]
result = tmp_str.upper().count(tmp_flag.upper()[0])
print(result)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3. 明明的随机数

描述:明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。
输入描述:第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。
输出描述:输出多行,表示输入数据处理后的结果
示例:
输入:
3
2
2
1
输出:
1
2
参考代码:

import sys
input_list = []
for line in sys.stdin:
	a = line.split()[0]
	input_list.append(int(a))

count = input_list[0]
num_list = input_list[1:]
num_set = set(num_list)
num_list = list(num_set)
num_list.sort()

for _ in num_list:
	print(_)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
'
运行

4. 字符串分隔

描述:输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:连续输入字符串(每个字符串长度小于等于100)
输出描述:依次输出所有分割后的长度为8的新字符串
示例:
输入:abc
输出:abc00000
参考代码:

import sys
tmp_list = []
for line in sys.stdin:
	a = line.split()[0]
	tmp_list.append(a)
def fun(tmp_str):
	count = len(tmp_str) // 8
	mod = len(tmp_str) % 8

	for _ in range(count):
		print(tmp_str[ _ * 8: _ * 8 + 8])

	if mod == 0:
		return 
	zero_str = '0' * (8 - mod)
	print(tmp_str[count * 8:] + zero_str)

for _ in tmp_list:
	fun(_)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

5. 进制转换

描述:写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
输入描述:输入一个十六进制的数值字符串。
输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例:
输入:0xAA
输出:170
参考代码:

import sys
tmp_list = []
for line in sys.stdin:
	a = line.split()[0]
	tmp_list.append(a)
for _ in tmp_list:
	print(int(_,16))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
'
运行

6. 质数因子

描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
输入描述: 输入一个整数
输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例:
输入:180
输出:2 2 3 3 5
参考代码:

import sys
tmp = None
for line in sys.stdin:
	a = line.split()[0]
	tmp = a
def prime_factors(n):

	factors = []
	i = 2
	while i * i <= n:
		if n % i:
			i += 1
		else:
			n //= i
			factors.append(i)
	if n > 1:
		factors.append(n)
	return factors
result = prime_factors(int(tmp))
for _ in result:
	print(_,end=' ')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
'
运行

7.取近似值

描述:写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
输入描述:输入一个正浮点数值
输出描述:输出该数值的近似整数值
示例:
输入:5.5
输出:6
说明:0.5>=0.5,所以5.5需要向上取整为6
参考代码:

import sys
tmp1 = None
tmp2 = None
for line in sys.stdin:
	a = line.split()[0]
	tmp1,tmp2 = a.split('.')
	tmp1 = int(tmp1)
	tmp2 = int(tmp2[0])
	if tmp2 >= 5:
		print(tmp1 + 1)
	else:
		print(tmp1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/955923
推荐阅读
相关标签
  

闽ICP备14008679号