首页 > 滴滴0821笔试
头像
一切随缘奥利给
编辑于 2020-08-21 23:45
+ 关注

滴滴0821笔试

两道题,作为开发岗的题也算是很简单的。即使没全ac的同学也基本是有些边界条件没考虑到。

第一题,a,b,c分别为不同的数字(0~9),给出一个n,求n=abc + acc,输出总的结果个数和分别对应的abc,acc。
代码如下,注意的点有两个,a作为百分位不能为0,且a, b, c不相等。
num = int(input())
res = 0
ans = []
for i in range(1, 10):
    for j in range(10):
        for k in range(10):
            if i != j and i != k and j != k:
                abc = 100*i + 10*j + k
                acc = 100*i + 10*k + k
                if abc + acc == num:
                    ans.append((abc, acc))
                    res += 1
print(res)
for abc, acc in ans:
    print(abc, acc)


第二题,输入是这样的
10
A B C D E F X H I J
A C I X E F J H D B

第一行有n个人,后面两行分别代表跳高排名,跳远排名。总成绩按比重计算(具体比重不知道),求X同学可能的排名。
换而言之,求跳高和跳远都比X排名高的,例题中是AC,所以最好为第三名。都比X低的,例子中是HJ,所以X最差为第八名。输出3 8,最好和最差的名次。
代码如下,
n = int(input())
tiaogao = input().split()
tiaoyuan = input().split()
pos1, pos2 = tiaogao.index('X'), tiaoyuan.index('X')
ahead = set(tiaogao[:pos1]).intersection(set(tiaoyuan[:pos2]))
behind = set(tiaogao[pos1+1:]).intersection(set(tiaoyuan[pos2+1:]))
print(len(ahead) + 1, n - len(behind))


全部评论

(1) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐