题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <cmath> #include <iostream> #include <sstream> #include <string> #include <vector> using namespace std; bool checkToken(const string& token){ if(token[0]=='A'||token[0]=='W'||token[0]=='S'||token[0]=='D'){ for(int i=1;i<token.size();++i){ if(token[i] >='0' && token[i]<='9'){ }else{ return false; } } }else{ return false; } return true; } int main() { int x=0; int y=0; string s; getline(cin, s); istringstream stream(s); vector<string> vec; string token; while(getline(stream, token,';')){ if(token!="" && checkToken(token)){ vec.emplace_back(token); } } for(int i=0;i<vec.size();++i){ int num = 0; if(vec[i][0]=='A'){ for(int j=1;j<vec[i].size();++j){ num += pow(10, vec[i].size()-j-1)*(vec[i][j]-'0'); } x-=num; } if(vec[i][0]=='D'){ for(int j=1;j<vec[i].size();++j){ num += pow(10, vec[i].size()-j-1)*(vec[i][j]-'0'); } x+=num; } if(vec[i][0]=='W'){ for(int j=1;j<vec[i].size();++j){ num += pow(10, vec[i].size()-j-1)*(vec[i][j]-'0'); } y+=num; } if(vec[i][0]=='S'){ for(int j=1;j<vec[i].size();++j){ num += pow(10, vec[i].size()-j-1)*(vec[i][j]-'0'); } y-=num; } } cout<<x<<","<<y; } // 64 位输出请用 printf("%lld")