微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

给定一串 North South East 或 West,我如何找到某事的方向逆时针或顺时针

如何解决给定一串 North South East 或 West,我如何找到某事的方向逆时针或顺时针

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

解决方法

这是显示所有方向变化的方式,1 是时钟,0 是不动,3 是计数器时钟,2 表示从 NS 或 EW 跳转。你的例子被翻译成 {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')))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。