题解 | #坐标移动#
坐标移动
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
// while(line = await readline()){
// let tokens = line.split(' ');
// // let a = parseInt(tokens[0]);
// // let b = parseInt(tokens[1]);
// // console.log(a + b);
// }
// 第一点是小于等于3 第二点是返回结果要转成逗号分隔
line = await readline();
let lineList = line.split(";");
let filterList = lineList.filter((item) => {
let posList = ["A", "D", "W", "S"];
return (
item.length <=3 &&
posList.includes(item[0]) &&
!isNaN(Number(item.slice(1)))
);
});
// console.log(filterList)
console.log(filterList.reduce(
(pos, item) => {
const dir = item[0];
const dis = Number(item.slice(1));
switch (dir) {
case "A":
return [pos[0] - dis, pos[1]];
case "D":
return [pos[0] + dis, pos[1]];
case "W":
return [pos[0], pos[1] + dis];
case "S":
return [pos[0],pos[1] - dis];
}
},
[0, 0]
).join(','))
})();

