题解 | 坐标移动

坐标移动

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

#include <iostream>
using namespace std;

bool is_num(string s) {
    for (char c : s) {
        if ( c < '0' || c > '9') {
            return false;
        }
    }
    return true;
}


int main() {
    string str;
    pair<int, int>p(0, 0);
    while (getline(cin, str, ';')) {
        if (str.empty()) continue;
        string s1 = str.substr(1);
        if (is_num(s1)) {
            switch (str[0]) {
                case 'A':
                    p.first -= stoi(s1);
                    break;
                case 'D':
                    p.first += stoi(s1);
                    break;
                case 'W':
                    p.second += stoi(s1);
                    break;
                case 'S':
                    p.second -= stoi(s1);
                    break;
                default:
                    break;
            }
        }
    }
    cout << p.first <<"," <<  p.second;
    return 0;
}
// 64 位输出请用 printf("%lld")

getline(cin, str, ';') 这个函数能够自定义终止符,同时stoi和aiot这两个函数负责字符和数字之间的转换;

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务