题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
// 这题解耦做的不错 正则独立出来 坐标计算独立出来
function getNext(prev, data) {
const [x, y] = prev;
const type = data.slice(0, 1);
const d = parseInt(data.slice(1))
switch (type) {
case 'A':
return [x - d, y];
case 'S':
return [x, y - d];
case 'W':
return [x, y + d];
case 'D':
return [x + d, y]
}
}
while(line = await readline()){
let tokens = line.split(' ');
let reg = /^[ASWD]\d{1,2}$/
const data = tokens[0].split(';')
const res = data.reduce((accm, cur) => {
return reg.test(cur) ? getNext(accm, cur) : accm;
}, [0, 0])
console.log(res.toString())
}
}()
查看20道真题和解析
