首页 > 08 15 美团 笔试 测试开发
头像
我不想当大白菜
编辑于 2020-08-15 18:16
+ 关注

08 15 美团 笔试 测试开发

08 15 美团 笔试 测试开发

分析

4道编程。还有一道问答题,关于快速体现功能进行等价类划分的题,设计测试用例。

1

判断逆序数,该逆序定义为:原值乘以四得到逆序值。

  • 暴力怼,不知道漏了什么,AC 0.91
N = int(input())

res = []
for i in range(1099,(N+1)//4):
    inv = int(str(i)[::-1])
    if i*4 == inv:
        res.append([i,inv])
res.sort(key = lambda x:x[0])
print(len(res))
for i in range(len(res)):
    print("{} {}".format(res[i][0],res[i][1]))

2.

根据之前的买票记录计算总共有多少次旅程。每次旅程出发城市和回归的城市一样,且记录按时间排序。

  • 也是暴力怼,只AC了0.55
N = int(input())

records = []
for _ in range(N):
    start,end = input().split()
    records.append([start,end])

cnt = 0
inCircle = False
start_position = None
for s,e in records:
    if not inCircle:
        start_position = s
        inCircle = True

    else:
        if e == start_position:
            inCircle = False
            cnt += 1
            start_position = None
print(cnt)

3

根据图的连接关系,判断哪几个结点属于同一个小区。

  • 就是构造图,然后用BFS遍历,看能得到几个集合,再排序输出。 AC
N,M = list(map(int,input().split()))
m_dict = dict()
for i in range(1,N+1):
    m_dict[i] = set()

for _ in range(M):
    x,y = list(map(int,input().split()))
    if x != y:
        m_dict[x].add(y)
        m_dict[y].add(x)

visited = [0] * (N+1)
def bfs(m_dict,node,visited):
    cur_set = set()
    que = [node]
    while que:
        cur_node = que.pop(0)
        cur_set.add(cur_node)
        for to_node in m_dict[cur_node]:
            if visited[to_node] == 0:
                que.append(to_node)
                visited[to_node] = 1
    return cur_set


res = []
for key in m_dict.keys():
    if not visited[key]:
        cur_set = bfs(m_dict,key,visited)
        res.append(sorted(list(cur_set)))
res.sort()
print(len(res))
for i in range(len(res)):
    li = list(map(str,res[i]))
    print(" ".join(li))

4

调度问题。。把N个汽车中的a+b个派出去计算最大的利润。。

  • 应该用DP的,最后暴力写 偷了18%的AC
N,a,b = list(map(int,input().split()))
nums = []
for _ in range(N):
    x,y = list(map(int,input().split()))
    nums.append([x,y])

nums.sort(key=lambda x:x[1])
nums.sort(key=lambda x:-x[0])

res = 0
while a:
    a -= 1
    x,y = nums.pop(0)
    res += x

nums.sort(key=lambda x:-x[1])
while b:
    b -= 1
    x,y = nums.pop(0)
    res += y

print(res)

总结

全部评论

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

推荐话题

相关热帖

近期热帖

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

近期精华帖

热门推荐