题解 | #坐标移动#

坐标移动

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);
全部评论

相关推荐

02-08 20:56
已编辑
南京工业大学 Java
在等offer的比尔很洒脱:我也是在实习,项目先不说,感觉有点点小熟悉,但是我有点疑问,这第一个实习,公司真的让实习生去部署搭建和引入mq之类的吗,是不是有点过于信任了,我实习过的两个公司都是人家正式早搭好了,根本摸不到部署搭建的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务