题解 | #坐标移动#

坐标移动

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

let inputStr = readline();
let X = 0, Y = 0;

function getCode(str) {
    // 不支持断言,很头疼,只能换一种写法
    // let reg = /(?<![\d\s\w])([AWSD])(\d{1,2});/g;

    // 第二种写法,我们拿原子表取出的数据,获取它的index,然后取它前面的一个字符串
    // 判断前面一个字符串是不是;号,是则正确,否则错误,index==0除外
    let reg = /([AWSD])(\d{1,2});/g;
    let res;
    while(res = reg.exec(str)){
        if(res['index'] != 0){
            let beforeStr = res['input'].slice(res['index']-1,res['index']);
            if(beforeStr === ';'){
                getFix(res[1] , parseInt(res[2]));
            }
        }else{
            getFix(res[1] , parseInt(res[2]));
        }
    }

    console.log(X +','+ Y)
}
function getFix(letter , num){
    switch(letter) {
        case 'A':
            X -= num;
            break;
        case 'D':
            X += num;
            break;
        case 'S':
            Y -= num;
            break;
        case 'W':
            Y += num;
            break;
        default:
            break;
    }
}


 getCode(inputStr);
全部评论

相关推荐

躺尸修仙中:因为很多92的也去卷中小厂,反正投递简历不要钱,面试不要钱,时间冲突就推,不冲突就面试积累经验
点赞 评论 收藏
分享
11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务