牛客华为机考练习
1、计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。
str = input()
t_str = str.split(" ")[-1]
print(len(t_str))
2、写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
str = input().lower()
chr = input().lower()
num = 0
for i in str:
if i == chr:
num += 1
print(num)
# print(str.count(chr))
3、明明生成了NN个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。
数据范围: 1 \le n \le 1000 \1≤n≤1000 ,输入的数字大小满足 1 \le val \le 500 \1≤val≤500
num = int(input())
Alldata = []
for i in range(num):
data = int(input())
if data not in Alldata:
Alldata.append(data)
Alldata.sort()
for j in Alldata:
print(j)
# 可以使用set函数进行去重,set()添加 函数为add
# set() 排序可以转化为list用sort()或者用sorted()
4、输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
str = input()
# 方法一
# 使用ljust函数,用法为ljust(num,char),char默认为空格
# for i in range(0,le,8):
# print(str[i:i+8].ljust(8,'0'))
# 方法二
# 先添加0再输出
# if le % 8 != 0:
# str += '0' * (8 - len(str) % 8)
# for i in range(0, len(str), 8):
# print(str[i:i + 8])
# 方法三
# 直接输出
if len(str) < 8:
print(str + '0'*(8 - len(str)))
else:
while len(str) >= 8:
print(str[0:8])
str = (str[8:])
if len(str) > 0:
print(str + '0'*(8 - len(str)) )
5、写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
num = int(input(),16)
print(num)
# 进制转换 bin oct int hex 统一模式为:函数(int(num,2/8/10/16))
---------------------------------DAY1----------------------------------------
6、功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
from math import sqrt
num = int(input())
lis = []
if num==1:
print(num)
else:
for i in range(2,int(sqrt(num))+1):
while num % i == 0:
print(i,end=" ")
num = num // i
if num > 2: # 这一步非常关键,在于取到最后一位数
print(num)