题解 | 坐标移动

坐标移动

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

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
let targetStr:string[] = [] // 输入数组
let targetPosition:number[] = [0,0]
rl.on('line', function (line) {
    targetStr = line.split(";")
}).on('close',()=>{
    for(let i=0;i<targetStr.length;i++){
        // 如果不是AWSD 开头且后面没有两位数字
        if(/^[AWSD]\d{1,2}$/.test(targetStr[i])){
            let _position:number = Number(targetStr[i].match(/\d{1,2}/)[0])
            let direction:string = targetStr[i].match(/[AWSD]{1}/)[0]
            caculate(direction,_position)
        }
    }
    console.log(targetPosition.join(","))
})
/**
 * direction 方向
 * _position 位置
 */
function caculate(direction:string,_position:number){
    switch(direction){
        case "A":
        targetPosition[0]-= _position;
        break;
        case "W":
        targetPosition[1]+= _position;
        break;
        case "S":
        targetPosition[1]-= _position;
        break;
        case "D":
        targetPosition[0]+= _position;
        break;
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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