题解 | #坐标移动#

坐标移动

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))


全部评论

相关推荐

评论
2
收藏
分享
牛客网
牛客企业服务