题解 | #坐标移动#

坐标移动

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

input_list = input().split(';')
initial = [0,0]

for item in input_list:
    if not 2 <= len(item) <= 3:
        continue

    try:
        direction = item[0]
        step = int(item[1:])
        if direction in ['A', 'D', 'W', 'S']:
            if 0 <= step <= 99:
                if direction == 'A':
                    initial[0] -= step
                elif direction == 'D':
                    initial[0] += step
                elif direction == 'S':
                    initial[1] -= step
                elif direction == 'W':
                    initial[1] += step
    except:
        continue

print(str(initial[0]) + ',' + str(initial[1]))
全部评论
如果后两位是有数字加英文,用int不会报错吗?第十行那
9 回复 分享
发布于 2022-03-12 22:27
这种写法有点牛逼阿
7 回复 分享
发布于 2022-01-26 12:49
我觉得我很佩服的是try,except异常处理,更佩服的是对长度2或3的step的处理,我分步讨论很难受,明明学了切片,就不会融会贯通。
4 回复 分享
发布于 2022-05-17 22:23
求问第5,6行这句什么意思啊?为什么长度 小于2 大于3 还要继续?
3 回复 分享
发布于 2022-05-05 22:12
不能使用str[1:].isdigit判断是否满足输入要求吗?
2 回复 分享
发布于 2022-08-23 22:35 北京
牛啊
1 回复 分享
发布于 2022-04-21 10:10
not 2 <= len(item) <= 3:这个条件不对吧,A1A也符合,但是无效的
1 回复 分享
发布于 2022-08-11 17:03
这思路牛啊,我发现一个可以简化的就是能int不报错就肯定是大于0小于99了,可以少一步判断
1 回复 分享
发布于 2023-03-27 16:42 上海
简单易懂
点赞 回复 分享
发布于 2022-03-05 13:34
想问下为什么把step的判断放在direction前面就得不到想要的结果
点赞 回复 分享
发布于 2022-05-09 10:08
大佬牛皮,我想问下前边判断如果长度2-3然后继续,这块考虑的是哪种问题呢,不加这个判断,后边的方向和0-99也把所有条件都控制到了吧?
点赞 回复 分享
发布于 2022-05-26 19:28
我有一个疑惑,A09这种到底算有效输入还是无效输入?你这里把A9和A09当做一样的有效输入处理了。
点赞 回复 分享
发布于 2022-10-20 01:46 四川
正则表达式解法: import re inputs = re.findall(r'\b[AWSD]\d{1,2}\b', input()) results = [0,0] for i in inputs: if i[0] == 'A': results[0] -= int(i[1:]) elif i[0] == 'D': results[0] += int(i[1:]) elif i[0] == 'W': results[1] += int(i[1:]) else: results[1] -= int(i[1:]) print(f"{results[0]},{results[1]}", )
点赞 回复 分享
发布于 2022-11-28 17:18 广东
点赞 回复 分享
发布于 2023-05-25 15:30 广东
for循环开始之后再添一句就可以排除掉后两位非纯数字的错误输入了 tem = item[1:] if not tem.isdigit():
点赞 回复 分享
发布于 2024-12-20 12:21 山东

相关推荐

牛客鼠:校友你这简历基本无敌了,春招刷刷题去冲大厂
点赞 评论 收藏
分享
明天不下雨了:兄弟你是我今天看到的最好看的简历(我说的是简历风格跟简历书写)把985 211再搞亮一点。投boss就说;您好,我华科(985)研二在读,本科211。对您的岗位很感兴趣,希望能获得一次投递机会。
点赞 评论 收藏
分享
评论
149
17
分享

创作者周榜

更多
牛客网
牛客企业服务