8.13美团笔试,大佬能帮忙看看哪里错了吗
题目是:机器人打扫房间。一个n*m的矩阵,给出一系列指令,可以向上下左右打扫。打扫完成输出Yes和用了几条指令,没完成输出No和还有几个单元没完成。
n, m, k = map(int, input().split())
order = list(input())
# 边界处理
if n==m==1:
print('Yes')
print(0)
if k==0:
if m*n>1:
print('No')
print(n*m-1)
visited = [[0]*m for _ in range(n)]
visited[0][0] = 1
rest_pos = n*m-1
cur_pos = (0, 0)
for idx in range(len(order)):
each_order = order[idx]
if each_order=='W':
new_pos = (cur_pos[0]-1, cur_pos[1])
elif each_order=='A':
new_pos = (cur_pos[0], cur_pos[1]-1)
elif each_order=='S':
new_pos = (cur_pos[0]+1, cur_pos[1])
elif each_order=='D':
new_pos = (cur_pos[0], cur_pos[1]+1)
cur_pos = new_pos
if visited[new_pos[0]][new_pos[1]] == 0:
rest_pos -= 1
visited[new_pos[0]][new_pos[1]] == 1
if rest_pos==0:
# 说明清理已经完成
print('Yes')
print(idx+1)
break
if rest_pos>0:
print('No')
print(rest_pos)
非常感谢!