题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
//朴素的解法 #include <iostream> #include <string> #include <vector> using namespace std; int main(){ string s; getline(cin,s); vector<int> zuobiao(2,0); string m=""; vector<string> s1; int num =0; for(auto i :s){ if(i!=';'){ m+=i; }else{ s1.push_back(m); m=""; } } for(auto i:s1){ if((i.size()==3) && (i[1]<='9') && (i[1]>='0') && (i[2]<='9') && (i[2]>='0') ){ num = (i[1]-'0')*10 + (i[2]-'0') ; }else if((i.size()==2) && (i[1]<='9') && (i[1]>='0') ){ num = i[1]-'0'; }else { num = 0; } switch(i[0]){ case 'A': zuobiao[0]-=num; break; case 'S': zuobiao[1]-=num; break; case 'D': zuobiao[0]+=num; break; case 'W': zuobiao[1]+=num; break; default : break; } num =0; } cout << zuobiao[0] << ',' << zuobiao[1]; return 0; }