#include <iostream> #include<vector> #include<string> using namespace std; int main() { int x = 0, y = 0; vector<string>vec; string s; getline(cin, s); int pos = 0; for (int i = 0; i < s.size(); i++) { if (s[i] == ';') { vec.push_back(s.substr(i - pos, pos)); pos = 0; } else pos++; } int num; for (int i = 0; i < vec.size(); i++) { int num=0; if (vec[i].size() == 3) { if (vec[i][1] >= '0' && vec[i][1] <= '9' && vec[i][2] >= '0' && vec[i][2] <= '9') { num=(vec[i][1]-'0')*10+vec[i][2]-'0'; } } else if (vec[i].size() == 2) { if (vec[i][1] >= '1' && vec[i][1] <= '9') { num=vec[i][1]-'0'; } } else continue; switch (vec[i][0]){ case 'A':x -= num;break; case 'D':x += num;break; case 'W':y += num;break; case 'S':y -= num;break; default:break;} } cout<<x<<','<<y; return 0; } // 64 位输出请用 printf("%lld")
解题关键:
用数组对有效字符串进行提取,并对数组进行遍历。根据字符串第一个字母的类型,进行条件判断,对坐标进行相应的运算。#牛客AI配图神器#