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_编程题相关推荐

  1. 百度2016研发工程师在线编程题

    题目链接:http://www.nowcoder.com/test/question/analytic?tid=1667855 [编程题]罪犯转移 C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入 ...

  2. 钓鱼比赛(平均概率公式:1 - (1-p)^ t)----百度2016研发工程师在线编程题

    [编程题] 钓鱼比赛 ss请cc来家里钓鱼,鱼塘可划分为n*m的格子,每个格子每分钟有不同的概率钓上鱼,cc一直在坐标(x,y)的格子钓鱼,而ss每分钟随机钓一个格子.问t分钟后他们谁至少钓到一条鱼的 ...

  3. 蘑菇街2016研发工程师在线编程题 - 题解

    今天无聊地蛋疼,所以在牛客网随便找了套题做做,随手写了下解题报告,套题链接:点这里 总体来说这套题就考了下贪心和模拟,最后一题考了一个经典的动态规划,其实也有别的方法可以搞,这题对于大家练手还是不错的 ...

  4. 【面经】外企德科-华为精英研发项目-笔试编程题

    微信搜索:编程笔记本.获取更多干货! 微信搜索:编程笔记本.获取更多干货! 点击上方蓝字关注我,我们一起学编程 欢迎小伙伴们分享.转载.私信.赞赏 今天来看一道"外企德科-华为精英研发项目& ...

  5. 阿里算法工程师在线编程题

    第一次投实习,阿里的在线编程题,只有一道,半个小时完成. 这道题主要要想到有递推公式 当N>=3时A(N)=M*(M-1)^(N-1)-A(N-1) N=2时,初值为M(M-1),因为只有两块, ...

  6. 字节跳动2018算法工程师校招编程题题解(第二批)

    编程题1 题目大意 为了不断优化推荐效果,今日头条每天要存储和处理海量数据.假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内 ...

  7. 网易2016年研发project师编程题(2)

    序 网易互联网的实习笔试立即就開始了,做几个练习题熟悉熟悉~嘿嘿~ 题目一: 小易的升级之路 小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内 ...

  8. 招商银行信用卡2018春季招聘研发(第一批)编程题 - 题解

    招商银行信用卡的题难度一般,基本都能做出来,因此,解析就写得简单些了.而且题中没有给出数据范围,说明数据不会很大,因此这三个题都可以暴力求解. 第一题 题目 给出一个非空字符串,判断这个字符串是否是由 ...

  9. 今日头条2018春季校园招聘研发岗位笔试编程题 - 题解

    由于24号头条笔试我还在回学校的路上,因此没有在笔试中做题,这些题目都是后来同学给我的,我做了下,不保证100%通过,因为我自己没在笔试中提交过.如果题目抄写有误或者说我的解法有误,或者你有更好的解法 ...

  10. 9.10 中国电信it研发中心 笔试编程题

    A 题意: 假设字符串中出现次数最少的字母是x, 出现次数为y, 删除所有出现次数为y的字符 思路: 统计一下字符的出现次数, 然后照着做就行 #include <iostream> #i ...

最新文章

  1. FL计算机软件,FL Studio12水果音乐制作软件
  2. java if 三目运算符_if-else和三元运算符的不同行为
  3. Eigen教程1 - 基础
  4. 如何通过github提升自己
  5. 计算机文化基础主要讲了什么,计算机文化基础—讲义
  6. Nginx服务器证书部署-亚洲诚信
  7. 阿里测试环境运维及研发效率提升之道
  8. 【计算机组成原理】指令格式
  9. VictoriaMetrics入门与实战
  10. windows IDA 调试SO
  11. 六大免费网站数据采集器对比(火车头,海纳,云采集,ET,三人行,狂人采集)
  12. 中缀表达式变为后缀表达式
  13. GB/T 31402塑料--塑料表面抗菌性能试验方法
  14. 面向接口编程VS《倚天屠龙记》里张三丰教无忌打太极
  15. 第四回 还君明珠双泪垂,恨不相逢未嫁时
  16. 中国首个细胞治疗类药品获批上市;恒瑞医药创新药氟唑帕利第二个适应症获批上市 | 医药健闻...
  17. 蓝叠模拟器查看Android版本,BlueStacks蓝叠版本信息在哪看蓝叠模拟器版本信息查看方法...
  18. package.json 详解
  19. Poser 11基本使用
  20. Boot Option Menu

热门文章

  1. css3光束_CSS3实现一束光划过图片、和文字特效
  2. 【Lintcode】507. Wiggle Sort II
  3. 惠斯通电桥称重传感器检测原理
  4. JS,CSS是前端,JAVA PHP ASP是后端,数据库是后端的处理对象,非代表前后底
  5. ubuntu中screen的使用
  6. 如何用聚类模型(k-means)做数据分析?
  7. 关于win10微软商店打不开的99%解决办法
  8. MySQL中临时表(TEMPORARY)
  9. 本地局域网(内网)远程连接报错0x112f的一种解决方案-由于一个协议错误(代码: 0x112f),远程会话将被中断。请重新跟远程计算机连接
  10. 定制开发app和小程序