ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

HJ17 坐标移动

HJ17 坐标移动 问题坐标移动_牛客题霸_牛客网我们定义一个无限大的二维网格上有一个小人小人初始位置为 (0,0)(0,0) 点小人可以读取指令上下左右移动。一个合法的指令由三至四个符号组成第一个符号为 A/D/W/S中的一个代表小人移动的方向分别代表向左、向右、向上、向下移动记某个时刻小人的坐标为 (x,y)(x,y)向左移动一格即抵达 (x−1,y)(x−1,y)、向右移动一格即抵达 (x1,y)(x1,y)、向上移动一格即抵达 (x,y1)(x,y1)、向下移动一格即抵达 (x,y−1)(x,y−1)。最后一个符号为 ‘;’代表指令的结束该符号固定存在∙ ∙中间为一个大于 0 且小于 100 的数字代表小人移动的距离。特别地如果这个数字小于 10那么它可能包含一个前导零此时也视为合法。如果你遇到了一个不合法的指令则直接忽略例如指令 A100; 是不合法的因为100 超出了规定的数字范围Y10;也是不合法的因为 Y 不是 A/D/W/S中的一个。输出小人最终的坐标。list1 input().split( ; ) x , y [0 , 0] for str1 in list1 : try: if str1[0] not in (A, S, D, W) : continue if int( str1[1:] ) 0 or int( str1[1:] ) 100: continue if len( str1 ) ! 3 and len( str1 ) ! 2 : continue else : if str1[0] A : x x - int( str1[1:] ) elif str1[0] D : x x int( str1[1:] ) elif str1[0] S : y y - int( str1[1:] ) elif str1[0] W : y y int( str1[1:] ) except: continue print(f{x},{y})
返回列表