c

codeye

V1

2022/09/22阅读:25主题:默认主题

罗盘

你有一个8方向的罗盘,像这样。

你收到你所面对的方向(8个方向之一:N、NE、E、SE、S、SW、W、NW)和一定的转弯度数(45的倍数,在-1080和1080之间);正数意味着顺时针,负数意味着逆时针。

返回你在转弯后将面临的方向。

"S",  180  -->  "N"

"SE", -45  -->  "E"

"W",  495  -->  "NE"

几个写法各有千秋 1、字典

def direction(facing, turn):

    d = {'E':0,'SE':45,'S':90,
         'SW':135,'W':180,'NW':225,
         'N':270,'NE':315}
         
    dvk = dict(zip(d.values(),d.keys()))
    return dvk[(d[facing]+turn)%360]

2、数组

def direction(facing, turn):
    compass = ['N''NE''E''SE''S''SW''W''NW']
    return compass[(compass.index(facing) + turn//45) % 8]

继续其他高效写法?

分类:

后端

标签:

后端

作者介绍

c
codeye
V1