题解 | #坐标移动#

坐标移动

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

#include <iostream>
using namespace std;
int main() {
    string s;
    int x = 0, y = 0;
    while (getline(cin, s, ';')) {
        if (s.empty())continue;
        int len = s.size();
        if (len == 2 && s[0] == 'A' && isdigit(s[1]))x -= s[1] -'0';
        if (len == 2 && s[0] == 'D' && isdigit(s[1]))x += s[1] -'0';
        if (len == 2 && s[0] == 'W' && isdigit(s[1]))y += s[1] -'0';
        if (len == 2 && s[0] == 'S' && isdigit(s[1]))y -= s[1] -'0';
        if (len == 3 && s[0] == 'A' && isdigit(s[1]) && isdigit(s[2]))x -= stoi(s.substr(1));
        if (len == 3 && s[0] == 'D' && isdigit(s[1]) && isdigit(s[2]))x += stoi(s.substr(1));
        if (len == 3 && s[0] == 'W' && isdigit(s[1]) && isdigit(s[2]))y += stoi(s.substr(1));
        if (len == 3 && s[0] == 'S' && isdigit(s[1]) && isdigit(s[2]))y -= stoi(s.substr(1));
    }
    cout << x << ',' << y << endl;
}
// int main() {
//     string s;
//     getline(cin, s);
//     int x = 0, y = 0;
//     //[j,i)
//     for (int i = 0; i < s.size(); ++i) {
//         string str = "";//存放待处理的字符串
//         int strlen = 0;//存放待处理的字符串长度
//         if (s[i] != ';' ) strlen++;
//         //只有遇到;操处理字符
//         else if (s[i] == ';') {
//             str = s.substr(0, i);//待处理的字符串
//             s = s.substr(i + 1);//剩下的字符

//             //判断str中的字符是否有效
//             if (str[0] == 'A' || str[0] == 'D' || str[0] == 'W' || str[0] == 'S') {
//                 for (int j = 1; i < str.size(); ++j) {
//                     if (!isdigit(s[j])) break;
//                 }
//             } else {
//                 break;//str中存在非法字符
//             }

//             //有效
//             int num = stoi(str.substr(1));
//             //for循环处理str

//             if (str[0] == 'A') x -= num; //10进制字符串转十进制数字
//             else if (str[0] == 'D') x += num;
//             else if (str[0] == 'W') y += num;
//             else if (str[0] == 'S') y -= num;
//         }
//     }
//     cout << x << ',' << y << endl;
// }

// 64 位输出请用 printf("%lld")

全部评论

相关推荐

mjasjon:这种trash中厂 简历过筛概率比大厂还低(除阿里系)
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务