#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配图神器#