题解 | #坐标移动#

坐标移动

https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

#include <bits/stdc++.h>
using namespace std;

int main() {
    string str;
    getline(cin, str);
    vector <string> v;
    int begin = 0;
    int num = 0;
    int firstnum = 0;
    int secondnum = 0;
    for (int i = 0; i < str.size(); i++) { //切割字符串,分号为切割符
        if (str[i] == ';') {
            if (num == 0) {

            } else {
                v.push_back(str.substr(begin, num));
            }
            begin = i + 1;
            num = 0;
            continue;
        }
        num++;
    }
    ///////////////////////////切割完成之后,所有的信息都在v的数组中///////////////
    for (int i = 0; i < v.size(); i++) {
        if (v[i].size() > 3 || v[i].size() < 2) { //数组长度不是3/2肯定无效
            continue;
        } else if (v[i].size() == 2) {//长度为2
            if (v[i][0] == 'A' && v[i][1] >= '0' && v[i][1] <= '9') {
                firstnum -= v[i][1] - '0';
            } else if (v[i][0] == 'D' && v[i][1] >= '0' && v[i][1] <= '9') {
                firstnum += v[i][1] - '0';
            } else if (v[i][0] == 'W' && v[i][1] >= '0' && v[i][1] <= '9') {
                secondnum += v[i][1] - '0';
            } else if (v[i][0] == 'S' && v[i][1] >= '0' && v[i][1] <= '9') {
                secondnum -= v[i][1] - '0';
            } else {
                continue;
            }
        } else  if (v[i].size() == 3) {//长度为3
            if (v[i][0] == 'A' && v[i][1] >= '0' && v[i][1] <= '9' && v[i][2] >= '0' &&v[i][2] <= '9') {
                firstnum -= (v[i][1] - '0') * 10 + v[i][2] - '0';
            } else if (v[i][0] == 'D' && v[i][1] >= '0' && v[i][1] <= '9' &&v[i][2] >= '0' && v[i][2] <= '9') {
                firstnum += (v[i][1] - '0') * 10 + v[i][2] - '0';
            } else if (v[i][0] == 'W' && v[i][1] >= '0' && v[i][1] <= '9' && v[i][2] >= '0' && v[i][2] <= '9') {
                secondnum += (v[i][1] - '0') * 10 + v[i][2] - '0';
            } else if (v[i][0] == 'S' && v[i][1] >= '0' && v[i][1] <= '9' && v[i][2] >= '0' && v[i][2] <= '9') {
                secondnum -= (v[i][1] - '0') * 10 + v[i][2] - '0';
            } else {
                continue;
            }
        }
    }
    cout<<firstnum<<','<<secondnum<<endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

08-12 13:37
南华大学 Java
看到了小红书顶尖实习生的薪资爆料,小红书你给这么多的吗
也不容易的大老虎很爱...:博士那个略有耳闻,进面的都是5篇a起步
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务