题解 | #坐标移动#
坐标移动
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")