【牛客网华为机试】HJ17 坐标移动

代码 代码 1267 人阅读 | 0 人回复

<
标题问题

形貌

开辟一个坐标计较东西, A暗示背左挪动,D暗示背左挪动,W暗示背上挪动,S暗示背下挪动。从(0,0)面开端挪动,从输进字符串内里读与一些坐标,并将终极输进结果输出到输出文件内里。
输进:
合理坐标为A(大要D大要W大要S) + 数字(两位之内)
坐标之间以;分开。
不法坐标面需求停止抛弃。如AA10;  A1A;  $%$;  YAD; 等。
上面是一个俭朴的例子 如:
A10;S20;W10;D30;X;A1A;B10A11;;A10;
处理历程:
出发点(0,0)
+   A10   =  (-10,0)
+   S20   =  (-10,-20)
+   W10  =  (-10,-10)
+   D30  =  (20,-10)
+   x    =  无效
+   A1A   =  无效
+   B10A11   =  无效
+  一个空 没有影响
+   A10  =  (10,-10)
结果 (10, -10)
留意请处理多组输进输出
输进形貌:

一止字符串
输出形貌:

终极坐标,以逗号分开
示例1

输进:
  1. A10;S20;W10;D30;X;A1A;B10A11;;A10;
复造代码
输出:
  1. 10,-10
复造代码
解题思绪

(1)总结有用掌握旌旗灯号的纪律
A10 = (-10, 0)

x-10

S20 = (-10,-20)y-20
W10 = (-10,-10)y+10
D30 = (20,-10)x+30
(2)总结无效掌握旌旗灯号的纪律
x    =  无效:第一个字母没有为(A,S,W,D)中此中一个,无效
A1A   =  无效:除第一个字母以外,其他地位没有是两位之内数字,无效
B10A11   =  无效:除第一个字母以外,其他地位没有是两位之内数字,无效
  1. >>>"A10;S20;W10;D30;X;A1A;B10A11;;A10;".split(";")
  2. [&#39;A10&#39;, &#39;S20&#39;, &#39;W10&#39;, &#39;D30&#39;, &#39;X&#39;, &#39;A1A&#39;, &#39;B10A11&#39;, &#39;&#39;, &#39;A10&#39;, &#39;&#39;]
  3. >>>list(map(str,(10,-10)))
  4. [&#39;10&#39;, &#39;-10&#39;]
  5. >>>",".join([&#39;10&#39;, &#39;-10&#39;])
  6. &#39;10,-10&#39;
复造代码
代码

  1. in_str = input().split(";")
  2. start = [0,0]
  3. for tmp in in_str:
  4.     try:
  5.         int(tmp[1:])
  6.         if len(tmp[1:])>2:
  7.             continue
  8.     except:
  9.         continue
  10.     if len(tmp)>0:
  11.         if tmp[0]=="A":
  12.             start[0] = start[0] - int(tmp[1:])
  13.             start[1] = start[1]
  14.         elif tmp[0]=="S":
  15.             start[0] = start[0]
  16.             start[1] = start[1] - int(tmp[1:])
  17.         elif tmp[0]=="W":
  18.             start[0] = start[0]
  19.             start[1] = start[1] + int(tmp[1:])
  20.         elif tmp[0]=="D":
  21.             start[0] = start[0] + int(tmp[1:])
  22.             start[1] = start[1]
  23.         
  24. print(",".join(map(str, start)))
复造代码
Reference

https://www.nowcoder.com/ta/huawei/

免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则