题解 | #坐标移动#
坐标移动
http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
''' n = input().split(';')
合法坐标为A(或者D或者W或者S) + 数字(两位以内)
存在问题A7这样是合法的
new_list=[] for i in n: if len(i)==3 and i[1].isdigit() and i[2].isdigit(): new_list.append(i) if len(i)==2 and i[1].isdigit(): new_list.append(i[0]+'0'+i[1]) if len(new_list)==0: print('0,0') #print(new_list) # 定义一个元组?还是定义一个字典吧 dict1 ={'x':0,'y':0} for i in new_list: if i[0]=='A': #print(int(i[1]+i[2])) dict1['x']=dict1['x']-int(i[1]+i[2]) elif i[0]=='D': dict1['x']=dict1['x']+int(i[1]+i[2]) elif i[0]=='W': #print(int(i[1]+i[2])) dict1['y']=dict1['y']+int(i[1]+i[2]) elif i[0]=='S': dict1['y']=dict1['y']-int(i[1]+i[2]) else: pass print('{},{}'.format(dict1['x'],dict1['y'])) '''
这个解法4600多k,比上面好一点点
n = input().split(';') # 用分号分割,肯定是没问题的
print(n)
然后需要处理列表
dict2={'A':0,'W':0,'S':0,'D':0} for i in n: if len(i)==2 and i[0] in dict2 and i[1].isdigit(): dict2[i[0]] += int(i[1]) elif len(i)==3 and i[0] in dict2 and i[1].isdigit() and i[2].isdigit(): dict2[i[0]] += int(i[1]+i[2]) else: pass print('{},{}'.format((dict2['D']-dict2['A']),(dict2['W']-dict2['S'])))