研发工程师L2_编程题
1、【模板】栈
题目描述:
请你实现一个栈。
操作:
push x:将 加x 入栈,保证 x为 int 型整数。
pop:输出栈顶,并让栈顶出栈
top:输出栈顶,栈顶不出栈
输入描述:
第一行为一个正整数 n ,代表操作次数。(1≤n≤100000)
接下来的 n,每行为一个字符串,代表一个操作。保证操作是题目描述中三种中的一种。
输出描述:
如果操作为push,则不输出任何东西。
如果为另外两种,若栈为空,则输出 "error“
否则按对应操作输出。
示例1
输入 |
6 push 1 pop top push 2 push 3 pop |
输出 |
1 error 3 |
class Stack:def __init__(self):self.items = []def isEmpty(self):return self.items == []def push(self, item):self.items.append(item)def pop(self):return self.items.pop()def peek(self):return self.items[len(self.items) - 1]def size(self):return self.items[len(self.items)]s = Stack()
num = int(input())
for i in range(num):a = input()if a[0:4] == "push":b = a.split(" ")s.push(int(b[1]))if a == "pop":if s.isEmpty() == True:print("error")else:print(s.peek())s.pop()if a == "top":if s.isEmpty() == True:print("error")else:print(s.peek())
2、小红取数
题目描述:
小红拿到了一个数组,她想取一些数使得取的数之和尽可能大,但要求这个和必须是 k 的倍数。你能帮帮她吗?
输入描述:
输出描述:
如果没有合法方案,输出 -1。
否则输出最大的和。
示例1
输入 |
5 5 4 8 2 9 1 |
输出 | 20 |
说明:取后四个数即可
n, k = map(int, input().split())
arr = list(map(int, input().split()))
map1 = [[] for _ in range(k)]
dp = [[0] * k for _ in range(n + 1)]
maxi = 0
for i in range(1, n + 1):for j in range(k):dp[i][j] = max(dp[i - 1][j], dp[i][j])dp[i][(dp[i - 1][j] + arr[i - 1]) % k] = max(dp[i - 1][j] + arr[i - 1], dp[i][(dp[i - 1][j] + arr[i - 1]) % k])
if dp[-1][0]:print(dp[-1][0])
else:print(-1)
3、串
题目描述:
长度不超过nn,且包含子序列“us”的、只由小写字母构成的字符串有多少个? 答案对取模。所谓子序列,指一个字符串删除部分字符(也可以不删)得到的字符串。例如,"unoacscc"包含子序列"us",但"scscucu"则不包含子序列"us"
输入描述:
一个正整数n
输出描述:
一个正整数,为满足条件的字符串数量对取模的值
![]() |
|
n = int(input())
def dfs(n):if n == 2:return 1dp = [25,1,0]result = 0mod = 10**9+7for i in range(2,n+1):dp[2] = (dp[1]+dp[2]*26)%moddp[1] = (dp[0]+dp[1]*25)%moddp[0] = (dp[0]*25)%mod result += dp[2]return result%mod
print(dfs(n))
4、经此一役小红所向无敌
题目描述:
经过重重困难,对立和光终于来到魔王城,和最终的大魔王——小红进行决战。
已知小红的血量是 。
对立的攻击力是 a ,血量是 h 。
光的攻击力是 b,血量是 k 。
每回合光先对小红发起攻击,然后对立对小红发起攻击,然后小红展开幻术,令光和对立同时互相攻击。
每次攻击后,受击者的血量会减掉攻击者的攻击力。
当光和对立其中一人死亡后,另一人会悲痛欲绝,对小红发出自己攻击力*10的伤害的大招,然后自杀。(若两人同时死亡,则两人都无法发出大招)
小红想知道,弱小的光和对立,她们能对自己造成多少点伤害?
说明:
第一回合,小红受到了对立和光的攻击,并让她们互相攻击。第一回合结束时,小红共受到 3 点伤害。这时对立血量为 2 ,光的血量为 1 。
第二回合,小红受到了对立和光的攻击,并让她们互相攻击。这时对立血量为 1 ,光的血量为 0 死亡。对立放出大招后自杀。本回合小红共受到 23 点伤害。
小红受到的总伤害为 3+23=263+23=263+23=26 。
import math
a,h,b,k = map(int,input().split())
t1 = math.ceil(h/b)
t2 = math.ceil(k/a)
if t1==t2:out = t1*(a+b)
elif t1<t2:out = t1*(a+b)+b*10
else:out = t2*(a+b)+a*10
print(out)
5、加减
题目描述:
小红拿到了一个长度为 n 的数组。她每次操作可以让某个数加 1 或者某个数减 1 。
小红最多能进行 k 次操作。她希望操作结束后,该数组出现次数最多的元素次数尽可能多。
你能求出这个最大的次数吗?
n,k=map(int,input().split())
arr = list(map(int,input().split()))
arr.sort()
arr1 = [0 for i in range(n+1)]
for i in range(1,n+1):arr1[i]=arr1[i-1]+arr[i-1]
p1=0
p2=0
maxlen=1
while(p2<n):p=(p2+p1)//2step= arr[p]*(p-p1+1)-(arr1[p+1]-arr1[p1]) +arr1[p2+1]-arr1[p+1]-arr[p]*(p2-p)if(step<=k):maxlen=max(maxlen,p2+1-p1)p2=p2+1elif p1<p2:p1=p1+1
print(maxlen)
6、kotori和糖果
题目描述:
kotori共有n块糖果,每块糖果的初始状态是分散的,她想把这些糖果聚在一堆。但她每次只能把两堆糖果合并成一堆。已知把两堆数量为a和b的糖果聚在一堆的代价是|a-b|。kotori想知道,她把这n块糖果聚在一堆的最小代价是多少?
输入描述:
第一行是一个正整数T,代表数据组数。第二行到第T+1行,每行一个非负整数n,代表kotori的糖果总数量。
输出描述:
每行一个整数,代表kotori需要花费的最小代价。
示例:
备注:对于50%的数据,0<T≤100000, 0≤n≤100000 对于另外50%的数据,T=1 , 0≤n≤1e18
T=int(input())
m={}
def s(n):if n <3:return 0if n in m:return m[n]else:c=s(n//2)+s(n-n//2)+n%2m[n]=creturn c
for i in range(T):print(s(int(input())))
7、kotori和迷宫
题目描述:
kotori在一个n*m迷宫里,迷宫的最外层被岩浆淹没,无法涉足,迷宫内有k个出口。kotori只能上下左右四个方向移动。她想知道有多少出口是她能到达的,最近的出口离她有多远?
输入描述:
第一行为两个整数n和m,代表迷宫的行和列数 (1≤n,m≤30);后面紧跟着n行长度为m的字符串来描述迷宫。'k'代表kotori开始的位置,'.'代表道路,'*'代表墙壁,'e'代表出口。保证输入合法。
输出描述:
若有出口可以抵达,则输出2个整数,第一个代表kotori可选择的出口的数量,第二个代表kotori到最近的出口的步数。(注意,kotori到达出口一定会离开迷宫)若没有出口可以抵达,则输出-1。
n,m=map(int,input().split())
ls=[]
for i in range(n):ls.append(list(input()))def maze(ls,si,sj,dt):ec=0lc=0ml=200 q=list()q.append((si,sj,lc))while q:h,c,lc=q.pop()lc+=1 for a,b in [(h-1,c),(h+1,c),(h,c-1),(h,c+1)]:if 0<=a<n and 0<=b<m:if ls[a][b]=='.':ls[a][b]='f'q.append((a,b,lc)) if ls[a][b]==dt:ec+=1ml=min(lc,ml)ls[a][b]='f'if ec==0:print(-1)else: print(ec,ml)for i in range(n):for j in range(m):if ls[i][j]=='k':maze(ls,i,j,'e')
---------------------------------欢迎提供L2题目,持续更新-------------------------------------
研发工程师L2_编程题相关推荐
- 百度2016研发工程师在线编程题
题目链接:http://www.nowcoder.com/test/question/analytic?tid=1667855 [编程题]罪犯转移 C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入 ...
- 钓鱼比赛(平均概率公式:1 - (1-p)^ t)----百度2016研发工程师在线编程题
[编程题] 钓鱼比赛 ss请cc来家里钓鱼,鱼塘可划分为n*m的格子,每个格子每分钟有不同的概率钓上鱼,cc一直在坐标(x,y)的格子钓鱼,而ss每分钟随机钓一个格子.问t分钟后他们谁至少钓到一条鱼的 ...
- 蘑菇街2016研发工程师在线编程题 - 题解
今天无聊地蛋疼,所以在牛客网随便找了套题做做,随手写了下解题报告,套题链接:点这里 总体来说这套题就考了下贪心和模拟,最后一题考了一个经典的动态规划,其实也有别的方法可以搞,这题对于大家练手还是不错的 ...
- 【面经】外企德科-华为精英研发项目-笔试编程题
微信搜索:编程笔记本.获取更多干货! 微信搜索:编程笔记本.获取更多干货! 点击上方蓝字关注我,我们一起学编程 欢迎小伙伴们分享.转载.私信.赞赏 今天来看一道"外企德科-华为精英研发项目& ...
- 阿里算法工程师在线编程题
第一次投实习,阿里的在线编程题,只有一道,半个小时完成. 这道题主要要想到有递推公式 当N>=3时A(N)=M*(M-1)^(N-1)-A(N-1) N=2时,初值为M(M-1),因为只有两块, ...
- 字节跳动2018算法工程师校招编程题题解(第二批)
编程题1 题目大意 为了不断优化推荐效果,今日头条每天要存储和处理海量数据.假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内 ...
- 网易2016年研发project师编程题(2)
序 网易互联网的实习笔试立即就開始了,做几个练习题熟悉熟悉~嘿嘿~ 题目一: 小易的升级之路 小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内 ...
- 招商银行信用卡2018春季招聘研发(第一批)编程题 - 题解
招商银行信用卡的题难度一般,基本都能做出来,因此,解析就写得简单些了.而且题中没有给出数据范围,说明数据不会很大,因此这三个题都可以暴力求解. 第一题 题目 给出一个非空字符串,判断这个字符串是否是由 ...
- 今日头条2018春季校园招聘研发岗位笔试编程题 - 题解
由于24号头条笔试我还在回学校的路上,因此没有在笔试中做题,这些题目都是后来同学给我的,我做了下,不保证100%通过,因为我自己没在笔试中提交过.如果题目抄写有误或者说我的解法有误,或者你有更好的解法 ...
- 9.10 中国电信it研发中心 笔试编程题
A 题意: 假设字符串中出现次数最少的字母是x, 出现次数为y, 删除所有出现次数为y的字符 思路: 统计一下字符的出现次数, 然后照着做就行 #include <iostream> #i ...
最新文章
- FL计算机软件,FL Studio12水果音乐制作软件
- java if 三目运算符_if-else和三元运算符的不同行为
- Eigen教程1 - 基础
- 如何通过github提升自己
- 计算机文化基础主要讲了什么,计算机文化基础—讲义
- Nginx服务器证书部署-亚洲诚信
- 阿里测试环境运维及研发效率提升之道
- 【计算机组成原理】指令格式
- VictoriaMetrics入门与实战
- windows IDA 调试SO
- 六大免费网站数据采集器对比(火车头,海纳,云采集,ET,三人行,狂人采集)
- 中缀表达式变为后缀表达式
- GB/T 31402塑料--塑料表面抗菌性能试验方法
- 面向接口编程VS《倚天屠龙记》里张三丰教无忌打太极
- 第四回 还君明珠双泪垂,恨不相逢未嫁时
- 中国首个细胞治疗类药品获批上市;恒瑞医药创新药氟唑帕利第二个适应症获批上市 | 医药健闻...
- 蓝叠模拟器查看Android版本,BlueStacks蓝叠版本信息在哪看蓝叠模拟器版本信息查看方法...
- package.json 详解
- Poser 11基本使用
- Boot Option Menu
热门文章
- css3光束_CSS3实现一束光划过图片、和文字特效
- 【Lintcode】507. Wiggle Sort II
- 惠斯通电桥称重传感器检测原理
- JS,CSS是前端,JAVA PHP ASP是后端,数据库是后端的处理对象,非代表前后底
- ubuntu中screen的使用
- 如何用聚类模型(k-means)做数据分析?
- 关于win10微软商店打不开的99%解决办法
- MySQL中临时表(TEMPORARY)
- 本地局域网(内网)远程连接报错0x112f的一种解决方案-由于一个协议错误(代码: 0x112f),远程会话将被中断。请重新跟远程计算机连接
- 定制开发app和小程序