当前位置:   article > 正文

华为机考攻略(python)--字符串操作【9题】(第一题HJ17 坐标移动)

hj17 坐标移动

系列文章目录


前言

一、HJ17 坐标移动

描述: 开发一个坐标计算工具,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里读取一些坐标,并将最终输入结果输出到输出文件里面。
输入:
合法坐标为A(或D,W,S)+数字(两位以内)
坐标之间用;分隔
非法坐标点进行舍弃,如AA10,A1A, % ,等
下面是一个简单的例子:
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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

数据范围: 每组输入的字符串长度满足1<=n<=10000,坐标保证满足:-231<=x,y<=231-1,且数字部分含正数
示例1:
输入:A10;S20;W10;D30;X;A1A;B10A11;;A10;
输出:10,-10
示例2:
输入:ABC;AKL;DA1;
输出:0,0

二、sound code

代码如下(示例):

str = input().split(';')
x, y = 0, 0
for i in str:
    if 2 <= len(i) <= 3:
        if i[0] in ['A', 'D', 'W', 'S'] and i[1:].isdigit():
            if i[0] == 'A':
                x -= int(i[1:])
            if i[0] == 'D':
                x += int(i[1:])
            if i[0] == 'W':
                y += int(i[1:])
            if i[0] == 'S':
                y -= int(i[1:])
print('{0},{1}'.format(x, y))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

总结

分享:
人生的黑夜更要有梦。走路的人,路在脚下;筑路的人,路在掌中。其实,任何伟大梦想的飞翔,都植根于脚踏实地的践行。
许多成功人士并不比大多数人有才华。但他们都具有完成困难工作所需要的决心、毅力、专注力及驱动力,能一直奋斗下去,他们要做的只是按照规划和梦想坚持走下去。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/146526
推荐阅读
相关标签
  

闽ICP备14008679号