{
const map = new Map();
let x = 0;
let y = 0;
let steps = 0;
leadWire.forEach((step) => {
const paces = parseInt(step.substring(1), 10);
const direction = step.charAt(0);
for (let i = 0; i < paces; i++) {
switch (direction) {
case 'U':
y++;
break;
case 'D':
y--;
break;
case 'L':
x--;
break;
case 'R':
x++;
break;
}
steps++;
if (!map.has(`${x},${y}`)) {
map.set(`${x},${y}`, steps);
}
}
});
let bestIntersection;
x = 0;
y = 0;
steps = 0;
secondWire.forEach((step) => {
const paces = parseInt(step.substring(1), 10);
const direction = step.charAt(0);
for (let i = 0; i < paces; i++) {
switch (direction) {
case 'U':
y++;
break;
case 'D':
y--;
break;
case 'L':
x--;
break;
case 'R':
x++;
break;
}
steps++;
if (map.has(`${x},${y}`)) {
if (!bestIntersection || steps + map.get(`${x},${y}`) < bestIntersection) {
bestIntersection = steps + map.get(`${x},${y}`);
}
}
}
});
return bestIntersection;
}