1、丑数

题目描述:给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。

丑数 就是只包含质因数 2、3 和/或 5 的正整数。(1通常被视为丑数)

输入描述:整数n

输出描述:true或false

'''
Author  : limingx
Time    : June 19,2022
'''
def func(n):if n == 0:return 'false'if n == 1:return 'true'if n % 2 == 0:return func(n / 2)if n % 3 == 0:return func(n / 3)if n % 5 == 0:return func(n / 5)return 'false'
n = int(input())
print(func(n))

2、皇帝的奏章

题目描述:某朝皇帝有大臣n名(1<=n<=1000),分别编号大臣1~n。某日皇帝身体抱恙,奏章堆积如山无法及时一一批阅,便命身旁內侍帮他把奏章按指定顺序排序后再阅。于是皇帝亲自挑选了几个值得信赖的重臣并排好序,要求把他们的奏章按排好的顺序放到前面,其他的按照编号升序排列即可。现在要求你写一个程序来帮皇上解决这个问题,即已知奏章总数和顺序、钦点重臣的排列顺序,求得皇帝查阅奏章的顺序。

输入描述:

第一行输入两个整数p(1<=p<=5000)和q,其中p表示堆积奏章的总数、q表示皇帝钦点重臣数

第二行输入p个数,表示所有按呈递顺序递上来的奏章来自于哪个大臣(大臣编号)

第三行输入q个数,表示皇帝钦点并排好序的重臣编号

输出描述:输出奏章按指定顺序排好序后,皇帝按大臣编号批阅的顺序

'''
Author  : limingx
Time    : June 19,2022
'''a,b=map(int,input().split())
lst1=list(map(int,input().split()))
lst2=list(map(int,input().split()))
output=[]
outstr=''
for i in range(0,len(lst1)):bool=1for j in range(0,len(lst2)):if lst1[i]==lst2[j]:output.append([lst1[i],j])bool=0breakif bool:output.append([lst1[i],b+lst1[i]])
output=sorted(output,key=lambda x:x[1],reverse=False)
for i in output:outstr=outstr+' ' +str(i[0])
print(outstr.strip())

优化了一下代码,但最后只通过了20%样例,不知道原因在哪?求广大网友诊断~

'''
Author  : limingx
Time    : June 19,2022
'''a,b = map(int,input().split())
list1 = list(map(str,input().split()))
list2 = list(map(str,input().split()))
output = []
outstr = []
for i in list1:if i not in list2:output.append(i)
output = sorted(output,key=lambda x:x,reverse=False)
for i in range(len(output)):list2.append(output[i])
for j in list2: #如果有大臣没有奏章,则跳过if j in list1:outstr.append(j)
print(' '.join(outstr))

3、尼姆博弈

题目描述:你和你的朋友,两个人一起玩 Nim 游戏:
桌子上有一堆石头。你们轮流进行自己的回合,你作为先手。
每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。
假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。

输入描述:整数n

输出描述:true或false

'''
Author  : limingx
Time    : June 19,2022
'''n = int(input())
if n%4 == 0:print('false')
else:print('true')

4、员工排序

题目描述:某公司要针对员工情况统一调薪,现有一个员工列表,包含姓名、职级、工作年限、工资信息。现要求将该列表按以下规则重新排序:

1、职级高的排在前面

2、若职级相同,按工资少的排前面

3、若工资相同,工作年限长的排前面

输入描述:第一行输入一个整数n,表示员工列表中员工的人数

接下来的n行,分别输入员工的姓名、职级、工作年限和工资信息,各项信息用空格分隔

输出描述:输出按要求重新排列的员工列表,每名员工信息(姓名、职级、工作年限和工资)占一行

'''
Author  : limingx
Time    : June 19,2022
'''n = int(input())
emps = [[emp[0],int(emp[1]),int(emp[2]),float(emp[3])] for emp in(input().strip().split(' ') for i in range(n))]
emps=sorted(emps,key=lambda x:(x[1],-x[3],x[2]), reverse=True)
for emp in emps:print('{} {} {} {:.2f}'.format(*emp))#print(i[0],i[1],i[2],'%.2f'%i[3]) #这种写法也可

5、水仙花数

题目描述:如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。

例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数

输入描述:输入一个整数a与一个整数b, 用空格分隔

输出描述:输出a到b区间内的水仙花数

'''
Author  : limingx
Time    : June 19,2022
'''a,b = map(int,input().split())
for i in range(a,b+1):m = int(i%10)n = int((i/10)%10)c = int(i/100)if m*m*m+n*n*n+c*c*c == i:print(i)

6、字符串查找和比较

题目描述:写函数实现如下功能,给定字符串A和B,输出A和B中的最长公共子串。比如A="aocdfe" B="pmcdfa" 则输出"cdf"。

输入描述:输入待处理的两个字符串 str1,str2

输出描述:找出两个字符串最长的公共子串

'''
Author  : limingx
Time    : June 19,2022
'''str1 = str(input())
str2 = str(input())
def get(str1,str2):s1 = len(str1)s2 = len(str2)record = [[0 for i in range(s2+1)] for j in range(s1)]maxNum = 0p = 0for i in range(s1):for j in range (s2):if str1[i] == str2[j]:record[i+1][j+1] = record[i][j]+1if record[i+1][j+1]>maxNum:maxNum = record[i+1][j+1]p = ireturn maxNum,str1[p+1-maxNum:p+1]
[A,B] = get(str1,str2)
print(B)

7、股票报价

题目描述:给定某股票每日的报价和一个目标值,请在所有报价中找出和为目标值的那两天的报价,并打印出对应的报价。

假设每种输入只会对应一个答案,且每日的报价不会重复。

你需要按报价从小到大的顺序打印答案。

输入描述:输入:第一行是某股票每日的报价,这些报价是正整数且用空格相隔,例如:17 20 33

第二行是目标值,例如:37

输出描述:输出:对应的报价,报价之间用空格相隔,例如:17 20

'''
Author  : limingx
Time    : June 19,2022
'''m = list(map(int,input().split()))
n = int(input())
for i in range(len(m)):for j in range(i+1,len(m)):if m[i]+m[j] ==n:print(sorted([m[i],m[j]],reverse=False)[0],sorted([m[i],m[j]],reverse=False)[1])'''或者输出改成以下格式:if m[i]<m[j]:print(m[i],m[j])else:print(m[j],m[i])      ''' 

8、罗马数字转整数

题目描述

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。

X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。

C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。

给定一个罗马数字,将其转换成整数。

输入描述:罗马数字

输出描述:转换后的整数

'''
Author  : limingx
Time    : June 19,2022
'''str0 = input()
S = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000,'a':4,'b':9,'c':40,'d':90,'e':400,'f':900}
def func(n):num=0s1=n.replace('IV','a')s2=s1.replace('IX','b')s3=s2.replace('XL','c')s4=s3.replace('XC','d')s5=s4.replace('CD','e')s6=s5.replace('CM','f')for i in range(len(s6)):num = num + S[s6[i]]return num
print(func(str0))

9、进程排序

题目描述:某系统中有n个进程,每个进程都有自己唯一的进程id(PID),同时每个进程最多还有一个父进程,父进程id为(PPID),和一个或多个子进程。

若某进程没有父进程,则PPID为0。 当某一进程被终止时,其子进程也将被终止。

现给出进程id列表和起对应的父进程id列表,当要终止某一进程时,计算最终会终止哪些进程,并将要终止的PID按升序排列。

输入描述:第一行输入两个整数n和k,n表示当前系统中运行的进程数;k表示要终止进程的PID。

第二行输入n个正整数,表示进程列表,每个整数表示进程的PID。

第三行输入n个正整数,表示进程列表中的进程对应的父进程PPID列表。

输出描述:输出当进程k终止时,所有会被终止的进程PID,并按PID升序排列,每个PID用空格分隔。

'''
Author  : limingx
Time    : June 19,2022
'''
n,k=map(int,input().split())
pid=list(map(int,input().split()))
ppid=list(map(int,input().split()))
output=[]
outstr=''
def kill(k,pid,ppid):output.append(k)    for i in range(0,len(ppid)):if k==ppid[i]:kill(pid[i],pid,ppid)
kill(k,pid,ppid)
output.sort(key=lambda x:x,reverse=0) #reverse=0升序排列
for i in output:outstr+=' '+str(i)
print(outstr.strip())


Author  : limingx
Time    : June 19,2022

-------------------更新---------------

10、奶牛

今天是万圣节!农夫约翰带着奶牛去参加化装舞会,但不幸的是,他只有一套化装服。这套服装正好适合两头长度为S(1≤ s≤ 1,000,000).
农夫约翰有N头奶牛(2≤ N≤ 20000)为了方便,编号为1..N,母牛i号的长度li是(1≤ li≤ 1,000,000). 如果两头母牛的长度之和不超过服装的长度,那么它们就可以穿上服装。农夫约翰想知道有多少对两头不同的母牛能穿上这套服装。
第一行包括两个空格分隔的整数:N和S
下面N行是每头奶牛的长度Li
输出一个整数,表示FJ可以选择的成对奶牛的数量。请注意,两头母牛的顺序并不重要;
输入:

4 6

3

5

2

1
输出:
4

'''
Author  : limingx
Time    : Oct 19,2022
'''
a=input().split()
list1=[]
for i in range(int(a[0])):    li=int(input())    list1.append(li)
i=int(0)
for x in range(int(a[0])):    for y in range(x+1,int(a[0])):      sum = int(list1[x])+int(list1[y])
if sum <= a[1]:           i = i+1
print(i)

选择题

研发工程师-编程题(python)相关推荐

  1. 牛客网--蘑菇街2016研发工程师编程题

    牛客网--蘑菇街2016研发工程师编程题 第一题: 搬圆桌 时间限制:1秒 空间限制:32768K 现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1).每次移动一步 ...

  2. 网易2016研发工程师编程题--完全解析

    前言 之前做公司的真题,碰到动态规划,还有一些数学性质的题目比较多一点.网易2016研发工程师编程题跟之前做的题目有很大的不同,不仅涉及到二叉树的编码,还涉及到图的广度遍历,最后还有一个快排.可以说这 ...

  3. 股票交易日(动态规划)----美团2016研发工程师编程题(二)

    [编程题] 股票交易日 在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行).给出一天中的股票变化序列,请写一个程序计算 ...

  4. 血型遗传检测(pair原来没有先后顺序)----去哪儿2016研发工程师编程题

    [编程题] 5-血型遗传检测 血型遗传对照表如下: 父母血型 子女会出现的血型 子女不会出现的血型 O与O O A,B,AB A与O A,O B,AB A与A A,O B,AB A与B A,B,AB, ...

  5. 华为中级编程题目python_华为研发工程师编程题2019(python3)

    第一题 有这样一道智力题:"某商店规定:三个空汽水瓶可以换一瓶汽水.小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?"答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的 ...

  6. 华为研发工程师编程题(1)----汽水瓶

    转载请注明出处<http://blog.csdn.net/qianqin_2014/article/details/51277094> 试题: 有这样一道智力题:"某商店规定:三 ...

  7. 网易2016研发工程师编程题 - 题解

    题目链接: 第一部分,点这儿: 第二部分,点这儿. 第一题:小易的升级之路 题目: 小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依 ...

  8. 网易2016研发工程师编程题:扫描透镜

    扫描透镜 在N*M的草地上,小明种了K个蘑菇,蘑菇爆炸的威力极大,小华不想贸然去闯,而且蘑菇是隐形的.只 有一种叫做扫描透镜的物品可以扫描出隐形的蘑菇,于是他回了一趟战争学院,买了2个扫描透镜,一个 ...

  9. 比较重量 网易2016实习研发工程师编程题

    题目: 小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量.这些钻石的重量各不相同.在他们们比较了一段时间后,它们看中了两颗钻石g1和g2.现在请你根据之前比较的信息判断这两颗钻石的哪颗 ...

  10. 算法面试题-美团点评2016研发工程师编程题(二)-字符编码(哈夫曼树)

    题目: 解析:这个题目的关键问题是"最短的编码",这里可以知道应该是Huffman编码了. 哈夫曼编码是一种可变字长编码,也就是说对于不同的字符的编码不是定长的,所以才能比定长编码 ...

最新文章

  1. opencv-python视频处理之图片变成视频,视频切成图片
  2. pjax 历史管理 jQuery.History.js
  3. PAT甲级1114 Family Property:[C++题解]结构体、并查集、测试点3、4、5有问题的进来!!
  4. python类和对象详解_Python公开课 - 详解面向对象
  5. vs2019 缺android sdk,VS2019由于缺少NuGet Microsoft.NET.Sdk.Functions程序包而无法加载项目,但也无法添加此程序包(示例代码)...
  6. 仍然报错_only_full_group_by配置,竟让所有应用报错?
  7. spring的事务隔离_spring事务基础及常见问题详解
  8. setuptools Command Reference
  9. spring boot 使用devtools热部署
  10. S5PV210 芯片降价
  11. iphone core animation教程
  12. 一种对云主机进行性能监控的监控系统及其监控方法
  13. 《英语语法新思维初级教程》学习笔记(七)五种基本句型
  14. 安卓虚拟摄像头_华为Mate 40 Pro爆料,后置摄像头类似苹果iPod
  15. Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False.
  16. 从零开始学习opencv——在虚拟环境下安装opencv环境
  17. 基于ICP算法的三维点云数据拼接算法的实现
  18. 新型付费服务能否在IT领域异军突起?
  19. CTFShow re2 (RC4
  20. 去哪儿VS携程产品分析

热门文章

  1. 考研数学中的三角函数公式
  2. win7设置视力保护色
  3. Vue学习之vue-cli脚手架下载安装及配置
  4. 百兆网络变压器原理图及网络变压器功能(附PDF工程图纸)
  5. codeforces 558D Guess Your Way Out! II
  6. 最小公倍数求解完全解读
  7. wbincms v1.5 综合门户管理系统发布 thinkphp3.2.3+amazui-2.5.2
  8. 小沈阳最经典的99句台词 保证你从头笑到尾
  9. 最新研究发现:另一半学历越高,你的身体可能就越健康
  10. lvds传输距离标准_lvds接口标准