题解 | #迷路的牛牛#

迷路的牛牛

https://www.nowcoder.com/practice/b53be4129b664128b23afc46412593d4

num = int(input( ))
# direc = [input( ) for i in range(num)]
direc = input( )
current = 'N'
for i in direc:
    d = {'N': 0, 'W': 1, 'S': 2, 'E': 3}     #按逆时针的顺序定义旋转
    m = [['W','E'], ['S','N'], ['E','W'], ['N','S']]         #这个列表的定义是针对于每个方位上的旋转到的方向
    j = d[current]
    if i == 'L':
        a = 0
    elif i == 'R':
        a = 1
    current = m[j][a]
print(current)
这里提供一种简单解法:该种解法的重点在当前方位的确定,以及下一转向后的方位的确定
当前的方位朝向由两个因素确定:转向之前朝向的方位和转向的方向,所以我们可以用一个双坐标索引的方法来定义当前的方位转向  m[j][a]:其中j索引的是转向之前的方位朝向,a索引的是向哪边转 a == 0或1
j:有四种情况,为了将方向对应到数组下标,我们用键值对定义 如d
a:转向 对于每一个方向上的转动,有两种情况,以 0 1定义
m:每个元素对应给出了旋转对应的方位

全部评论

相关推荐

11-14 16:13
已编辑
重庆科技大学 测试工程师
Amazarashi66:不进帖子我都知道🐮❤️网什么含金量
点赞 评论 收藏
分享
牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务