题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include<iostream> #include<vector> #include<string> #include<sstream> using namespace std; int main() { string str; getline(cin,str); stringstream ss(str); vector<string> v; string temp; while(getline(ss,temp,';')){ v.push_back(temp); } int x=0,y=0; for(int i=0;i<v.size();i++){ if(v[i].size()<=1||v[i].size()>3) continue; if(v[i][0]!='W'&&v[i][0]!='A'&&v[i][0]!='S'&&v[i][0]!='D') continue; int dist = 0; for(int j=1;j<v[i].size();j++){ if(v[i][j]>='0'&&v[i][j]<='9'){ dist = dist*10+v[i][j]-'0'; }else{ dist=0; break; } } if(dist==0) continue; switch(v[i][0]){ case 'W': y+=dist; break; case 'A': x-=dist; break; case 'S': y-=dist; break; case 'D': x+=dist; break; default: continue; } } cout<<x<<','<<y<<endl; return 0; }