题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
按照流程来,设定一个函数realmove专门用于判断坐标移动输入是否合法,如果合法,再进行main内的移动操作
合法的定义:
1.输入的move字符串长度只能为2或者3,长度为0,1输入也不会走,长度大于3,不合法
2.输入的move字符串定义为W/A/S/D+数字(注:str类型,需要转换),所以从前往后遍历一遍,如果第一项为W/A/S/D(可以使用set来快速查询),第二三项都是数字字符,那么就是合法字符串
a = input().split(";") x = 0 y = 0 temp = set('WASD') def realmove(char): if len(char)>3 or len(char) == 0:#大于3个字符或者没有字符肯定是无效输入 return False if char[0] not in temp: return False for i in char[1::]:#字符串至少2位 if ord(i) > ord('9') or ord(i) < ord('0'):#除去初始的ADWS之外,后续均为数字 return False return True for i in a: if realmove(i): 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(str(x)+','+str(y))