题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <iostream> #include <sstream> #include <utility> using namespace std; int main() { string s; cin >> s; istringstream iss(s); string word; pair<int,int> p = {0,0}; int step = 0; while(getline(iss,word,';')){ step = 0; if(word.size() > 1 ){ for(int i = 1;i < word.size();++i){ if(word[i] - '0' > 9 || word[i] - '0' < 0){step = 0;break;} step = (word[i] - '0')+10 * step; } if(word[0] == 'A')p.first -= step; if(word[0] == 'D')p.first += step; if(word[0] == 'W')p.second += step; if(word[0] == 'S')p.second -= step; } } cout << p.first << ','<< p.second << endl; } // 64 位输出请用 printf("%lld")