题解 | #坐标移动#
坐标移动
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); 