美团
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771
津贴兑换:津贴序列,有连续两个一样的x元的津贴可以变成x+1;这样的最后津贴序列是?
输入:序列长度n,序列a
输出:经过变换的序列
列子:
input:
5
[1, 1, 1, 1, 1]
output:3
代码:
n = 5
a = [1, 1, 1, 1, 1]
sum_con = 0
con = -1
while con != 0:
con = 0
pre = a[len(a) - 1]
i = len(a)-2
while i >= 0:
if a[i] == pre:
con += 1
a[i] = pre + 1
a.pop(i+1)
pre = a[i]
i = i - 1
sum_con += con
print(sum_con)
百度
买纪念品:纪念品的属性有重量(weight),价格(price),心动值(v),共有n件纪念品;李明有预算k,最多拿m千克的礼物;
输入:第一行,n m k 第2行到n+1行每行为price weight v
输出:不超过预算和不累的情况下,最多能带的纪念品个数
列子:
input:
3 10 1000
100 5 3
50 3 2
300 3 3
output:2
# p,w,v,k,m,n
n,m,k=map(int,input().split())
data= []
for i in range(n):
p,w,v = map(int,input().split())
data.append({'p':p,'w':w,'v':v})
data_new = sorted(data, key=lambda x: (-x['v'], x['p']))
cnt = 0
for i in data_new:
if i['w']< m and i['p']< k:
cnt += 1
m = m - i['w']
k = k - i['p']
else:
break
print(cnt)
搜狗
游戏道具兑换礼物:游戏中有道具(A,B,C),任意两个道具可以兑换一个道具,三个不同道具可以兑换一个礼物,求他最多能兑换礼物的个数
输入:A,B,C的个数
输出:最多能兑换礼物的个数
列子:
input: 4 4 2
output:3
# 需要耐心和细心的方法 def test(a,b,c): data = [a,b,c] cnt = min(data) data= [x-cnt for x in data] tmp_data = [i for i in data if i > 1] while data.count(0) != 3: # 没有一个大于1,无法满足兑换条件 if tmp_data == []: return cnt # 一个0,两个大于1,这两个各给一个作为兑换 elif data.count(0)==1 and len(tmp_data) == 2: ind_0 = data.index(0) data = [x - 2 for x in data] cnt += 1 data[ind_0]=0 tmp_data = [i for i in data if i > 1] # 两个0,一个大于1 elif data.count(0) == 2: # 两个0,一个大于1小于5,不满足兑换条件 if tmp_data[0] < 5: break else: ind_1 = data.index(tmp_data[0]) ind_0 = data.index(0) data = [x - 5 for x in data] data[ind_0] = 0 data[ind_1] = 0 cnt += 1 tmp_data = [i for i in data if i > 1] # 一个0,一个1,一个大于1 elif data.count(0) == 1 and len(tmp_data) == 1: # 一个0,一个1,一个大于1但小于3,不满足兑换条件 if tmp_data[0] < 3: return cnt # 一个0,一个1,一个大于3 else: ind_1 = data.index(1) ind_0 = data.index(0) data = [x - 3 for x in data] data[ind_0] = 0 data[ind_1] = 0 cnt += 1 tmp_data = [i for i in data if i > 1] return cnt if __name__ == '__main__': a,b,c = 4,4,2 print(test(a, b, c)) a, b, c = 9, 3, 3 print(test(a, b, c)) a, b, c = 5,7, 3 print(test(a, b, c))