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

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、HJ17 坐标移动
  • 二、sound code
  • 总结


前言

一、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<=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))

总结

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

你可能感兴趣的:(源码,Python,leetcode,华为机考攻略,算法)