牛客网华为机试题

文章目录

  • 简单
    • 计算字符个数
    • 随机数去重排序
    • 质数因子
    • 合并表记录
    • 提取不重复整数

简单

计算字符个数

  • 写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
a=input().lower()
c=input().lower()
print(a.count(c))

随机数去重排序

  • 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
while True:
    try:
        n = int(input())
        ls = []
        for i in range(n):
            ls.append(int(input()))
        ls = sorted(set(ls))
        for i in ls:
            print(i)
    except:
        break

质数因子

  • 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ),最后一个数后面也要有空格。
a=eval(input())
ls=[]
while True:
    for j in range (2,a+1):
        if a%j==0:
            ls.append(j)
            a=a//j
            break
    if a==1:
        break
for i in ls:
    print(str(i)+' ',end='')

合并表记录

  • 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
  • 输入描述:先输入键值对的个数,然后输入成对的index和value值,以空格隔开。
  • 输出描述:输出合并后的键值对(多行)。
while True:
    try:
        a = int(input())
        d = {}
        for i in range(a):
            ls = input().split(' ')
            if int(ls[0]) not in d.keys():
                d[int(ls[0])] =int(ls[1])
            else:
                d[int(ls[0])] =d[int(ls[0])]+ int(ls[1])
        for i in d.items():
            print(i[0],i[1])
    except:
        break

提取不重复整数

  • 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
ls=[]
for i in input()[::-1]:
    if i not in ls:
        ls.append(i)
print(''.join(ls))

你可能感兴趣的:(python基础)