1. 题目

2. 考点
- 字符串切割
- 坐标轴 右上代表正数
- 读清楚题目 看输出的是字符串还是列表还是元组。
- 正则表达的用法
\d 代表匹配数字 {n,m}代表匹配n到m个 其中{n}, {n,}代表匹配n个以及至少n个, ^[ASDW]\d{,2}$核心正则。
- 字符串的开始匹配 A、S、D、W 等 startswith方法。
- re.match(r'^[ASDW]\d{,2}$',string) 匹配出来的是一个group对象 使用ret.string才可以获取到值,如果没有匹配到 则返回None
3. 核心代码
import re
def test():
inp = input()
lis = inp.split(';')
x = 0
y = 0
for i in lis:
r = re.match(r'^[ASDW]\d{1,2}$', i)
if r:
if r.string.startswith('A'):
num = int(r.string.replace('A', ''))
x -= num
elif r.string.startswith('S'):
num = int(r.string.replace('S', ''))
y -= num
elif r.string.startswith('D'):
num = int(r.string.replace('D', ''))
x += num
else:
num = int(r.string.replace('W', ''))
y += num
print(f"{x},{y}")
if __name__ == '__main__':
test()