const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void (async function () { // 验证指令是否合法 function valid(cmd) { // 指令长度必须大于1 if (cmd.length <= 1) return false; // 指令只能有一个字母 if (cmd.match(/[a-z]/gi)?.length > 1) return false; // 第一个字符必须时A,D,W,S const directions = ["A", "D", "W", "S"]; if (!directions.includes(cmd[0])) return false; // 后面数字必须是大于0,小于100 const num = +line.substring(1); if (num <= 0 || num >= 100) return false; // 否则指令合法,返回true return true; } function move(cmd) { const direct = cmd[0]; const num = +cmd.substring(1); if (direct === "A") { position[0] = position[0] - num; } else if (direct === "D") { position[0] = position[0] + num; } else if (direct === "W") { position[1] = position[1] + num; } else if (direct === "S") { position[1] = position[1] - num; } } // 小人位置 const position = [0, 0]; // Write your code here while ((line = await readline())) { // 拆分为单个指令集合 const cmdArr = line.split(";").filter((item) => item); for (i = 0; i < cmdArr.length; i++) { const cmd = cmdArr[i]; if (!valid(cmd)) continue; move(cmd); } console.log(position.toString()); } })();