python - 给定一串North South East或West,我如何找到某物前进的方向(逆时针或顺时针)
问题描述
我正在尝试制作一个程序,该程序根据仅包含南北东西(nsew)的字符串输入确定某些东西是顺时针方向还是逆时针方向,例如,如果我有字符串“NESSWN”,我知道它是顺时针方向,因为画出来,但无论我怎么想,我都无法找到适用于每个案例的明确解决方案
解决方案
这是显示所有方向变化的方法,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')))
推荐阅读
- apache - 重写 url - apache - htaccess
- django - 运行配置错误:请在 PyCharm 中指定脚本名称
- jpa - @Stateless 和 @Asynchronous EJB 之间的 JPA 事务处理
- html - 更改响应背景颜色的文本颜色
- python - Pandas 数据框获取列名和 value_counts
- python - 将 Pandas 数据框转换为字典
- scala - Spark scala 更快的 groupbykey 和排序 rdd 值的方法
- python - Python 计算来自两个 int 数组的事件发生次数
- r - 在R中将基于年份的向量与基于年份和月份的矩阵相乘
- java - 如何给某个键盘命令让我们说 10-20 个标签 Tabs ,