题解 | #坐标移动#

坐标移动

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

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});
rl.on("line", function (line) {
    const tokens = line.split(" ");
    const raw = tokens[0];
    const list = raw.split(";");
    let x = 0;
    let y = 0;
    for (let moveInfoRaw of list) {
        const moveInfo = getMoveInfo(moveInfoRaw);
        // console.log({ moveInfo });
        if (moveInfo === "invalid") continue;
        const { direction, value } = moveInfo;
        switch (direction) {
            case "up":
                y += value;
                break;
            case "down":
                y -= value;
                break;
            case "left":
                x -= value;
                break;
            case "right":
                x += value;
                break;
            default:
                continue;
                break;
        }
    }
    console.log(`${x},${y}`);
});

const directionMap = {
    A: "left",
    D: "right",
    W: "up",
    S: "down",
};

const getMoveInfo = (raw: string) => {
    const prefix = raw.charAt(0);
    if (!["A", "D", "W", "S"].includes(prefix)) return "invalid";
    const suffix = raw.slice(1);
    const suffixDigit = parseInt(suffix);
    if (isNaN(suffixDigit)) return "invalid";
    if (suffixDigit.toString().length !== suffix.length) return "invalid";
    return {
        direction: directionMap[prefix],
        value: suffixDigit,
    };
};

全部评论

相关推荐

牛客100866号技...:把电科加粗,把电科加粗,把电科加粗,两个吊车尾的项目合并成一个,再加一个管理系统。电科✌🏻在成都面中厂手拿把掐
点赞 评论 收藏
分享
抽纸大侠:抱抱😘,首先你还有春招,然后就算这时候没上岸也没关系,大部分人都是这样,毕业了再找也成,最后工作只是生活的一小部分,找到工作也不是一个必须的事情。不要气馁不要焦虑你只是陷入了短暂的低谷,你也一直有退路
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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