function distFromFirstRevisit(instructions) {
let [dir, pos] = [0, [0, 0]];
const visited = new Set(["0,0"]);
for (const instr of instructions) {
const blocks = Number(instr.slice(1));
dir = instr[0] === "R" ? (dir + 1) % 4 : (dir + 3) % 4;
for (let i = 0; i < blocks; i++) {
pos[0] += dVectors[dir][0];
pos[1] += dVectors[dir][1];
const posTxt = pos[0] + "," + pos[1];
if (visited.has(posTxt)) {
return manhattan(pos);
}
visited.add(posTxt);
}
}
}