京东9.17后台笔试

第一题:提取年份

import re

strs = input().strip()
res = []

tmp = re.findall(r'\d+', strs)
print(tmp)
for num in tmp:
    num = int(num)
    if 1000 <= num <= 3999 and num not in res:
        res.append(num)

print(' '.join(map(str, res)))

第二题:王子与公主

T = int(input())

for _ in range(T):
    matrix = []
    n, m = map(int, input().strip().split()) # 每组测试数据的行列数
    for i in range(n):
        line = input()
        matrix.append(line)

        if 'S' in line:
            startx = i
            starty = line.find('S')

        if 'E' in line:
            endx = i
            endy = line.find('E')

    visited = [[False]*m for _ in range(n)]
    visited[startx][starty] = True

    q = [[startx, starty]]
    flag = 0
    DIRS = [(1,0), (-1,0), (0,1),(0,-1)]
    while len(q)>0:
        if flag == 1: break
        x, y = q.pop(0)

        for (moveX, moveY) in DIRS:
            newX = x + moveX
            newY = y + moveY
            if 0 <= newX < n and 0 <= newY < m and not visited[newX][newY] and matrix[newX][newY] != '#':
                q.append([newX, newY])
                visited[newX][newY] = True
                if newX == endx and newY == endy:
                    flag = 1
                    break

    if flag == 1 or visited[endx][endy]: print("YES")
    else: print("NO")
#笔试题目##京东#
全部评论
正则可以的,其实是个匹配数字大小题,说是年份误导了很多人以为02020不算
2 回复
分享
发布于 2020-09-17 21:17

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务