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