第一题:提取年份
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")
#笔试题目##京东#