题解 | 坐标移动

坐标移动

https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

import sys

for line in sys.stdin:
    a = line.split("\n")[0]
    ops = a.split(";")
    x = y = 0
    for op in ops:
        if not op:
            continue
        if op[0] not in {'W', 'A', 'S', 'D'}:
            continue
        # WASD仅能有一个,否则不合法
        flag = False
        for i in range(1,len(op),1):
            if op[i] in {'W', 'A', 'S', 'D'}:
                flag = True
                break
        if flag:
            continue
        try:
            if op[0] == 'W':
                count = int(op.split("W")[1])
                if count > 99 or count < 1:
                    continue
                y += count
            elif op[0] == 'S':
                count = int(op.split("S")[1])
                if count > 99 or count < 1:
                    continue
                y -= count
            elif op[0] == 'A':
                count = int(op.split("A")[1])
                if count > 99 or count < 1:
                    continue
                x -= count
            elif op[0] == 'D':
                count = int(op.split("D")[1])
                if count > 99 or count < 1:
                    continue
                x += count
        except:
            continue
    print("%s,%s" % (x, y))

遍历,判断几次是否合法,然后模拟上下左右即可

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务