def f(x:str):#判断一个指令是否合法 if x=='': return False if x[0]=='W' or x[0]=='A' or x[0]=='S' or x[0]=='D':#判断首字母是否正确 if len(x[1:])>2:#判断其余字符是否长度正确 return False else: for i in x[1:]: if not i.isdigit():#判断其余字符是否有非数字 return False if x[1:]=='':#防止出现只有一个字母的输入,例如W; return False return True else: return False s=input().split(';') #print(s) line=[] x=0 y=0 for i in s:#创建有效指令列表 if f(i): line.append(i) for j in line:#进行坐标移动 if j[0]=='W': y+=int(j[1:]) elif j[0]=='S': y-=int(j[1:]) elif j[0]=='A': x-=int(j[1:]) elif j[0]=='D': x+=int(j[1:]) print(','.join([str(x),str(y)])) #print(line)
我这个方法比较粗暴,查出所有的非法字符:
1.首字母不正确;2.空字符(因;分隔导致);3.坐标值过大或过小;4.无坐标值;5.坐标值内容非数字