题解 | #坐标移动#

坐标移动

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

有点白痴的解法,虽然写的有点多,而且有些条件应该可以合并,但是思路很简单。改天再改进一下
#include <iostream>
#include <string>
#include <vector>
#include <set>
using namespace std;

void process(char s, int &resultX, int &resultY, string step) {
    int num = stoi(step);
    if (s == 'A') {
        resultX -= num;
    } else if (s == 'S') {
        resultY -= num;
    } else if (s == 'W') {
        resultY += num;
    } else {
        // s = 'D'
        resultX += num;
    }
}

int main(){
    string input;
    cin >> input;
    int resultX = 0;
    int resultY = 0;
    while (!input.empty()) {
        size_t delim = input.find_first_of(';');
        string temp = input.substr(0,delim);
        if (temp.size() != 3 && temp.size() !=2) {
            input.erase(0,delim+1);
            continue;
        } else {
            string num; 
            char s = temp[0];
            if (s != 'A' && s != 'S' && s != 'W' && s != 'D') {
                input.erase(0,4);
                continue;
            }
            if (temp.size() == 2) {
                num = temp[1];
                if (temp[1] >= '0' && temp[1] <= '9') {
                    process(s,resultX, resultY, num);
                } else {
                    input.erase(0,3);
                    continue;
                }
            } else {
                num = temp[1];
                num += temp[2];
                if (temp[1] >= '0' && temp[1] <= '9' && temp[2] >= '0' && temp[2] <= '9') {
                    process(s, resultX, resultY, num);
                } else {
                    input.erase(0,4);
                    continue;
                }
            }
        }
        input.erase(0,delim+1);
        
    }
    
    cout << resultX << "," << resultY << endl;
    
    return EXIT_SUCCESS;
    
    
}


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:45
你不要过来啊啊啊啊啊啊啊
码农索隆:对面:“今天你不面也得面”
点赞 评论 收藏
分享
我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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