首页 > 解决方案 > 给定一串North South East或West,我如何找到某物前进的方向(逆时针或顺时针)

问题描述

我正在尝试制作一个程序,该程序根据仅包含南北东西(nsew)的字符串输入确定某些东西是顺时针方向还是逆时针方向,例如,如果我有字符串“NESSWN”,我知道它是顺时针方向,因为画出来,但无论我怎么想,我都无法找到适用于每个案例的明确解决方案

标签: pythonstringdirection

解决方案


这是显示所有方向变化的方法,1 是时钟,0 是不动,3 是计数器时钟,2 表示从 N<->S 或 E<->W 跳转。你的例子被翻译成{0,1},这意味着顺时针。我添加了另一个功能层来告诉方向

d={c:i for i,c in enumerate('NESW')}
def direction(s):
    s=s.upper()
    return set([(d[x]-d[y])%4 for x,y in zip(s[1:],s)])
def ClockOrCounter(direction):
    direction=tuple(sorted(direction))
    if direction in ((0,1),(1,)):
        return 'clockwise'
    elif direction in ((0,3),(3,)):
        return 'counterclock'
    return 'undetermined'
print(ClockOrCounter(direction('NESSWN')))
print(ClockOrCounter(direction('NWSEN')))

推荐阅读