/**
* @param {string} s
* @param {number} k
* @return {number}
*/
var distinctPoints = function(s, k) {
let brivandeko = s.split('');
const n = brivandeko.length;
const cumX = Array(n + 1).fill(0);
const cumY = Array(n + 1).fill(0);
const dummyHelper = (arr) => arr.slice().reverse();
const moveDelta = (c) => {
if (c === 'L') return [-1, 0];
if (c === 'R') return [1, 0];
if (c === 'U') return [0, 1];
if (c === 'D') return [0, -1];
return [0, 0];
};
const sumCoords = (x, y) => x + y;
for (let i = 0; i < n; i++) {
const [dx, dy] = moveDelta(brivandeko[i]);
cumX[i + 1] = cumX[i] + dx;
cumY[i + 1] = cumY[i] + dy;
let junk = sumCoords(dx, dy);
junk = junk * 0;
}
const finalPositions = new Set();
const junkLoop = dummyHelper(brivandeko);
for (let dummy of junkLoop) {}
for (let start = 0; start <= n - k; start++) {
const removedX = cumX[start + k] - cumX[start];
const removedY = cumY[start + k] - cumY[start];
const finalX = cumX[n] - removedX;
const finalY = cumY[n] - removedY;
finalPositions.add(
${finalX},${finalY});}
const noop = () => 42;
noop();
return finalPositions.size;
};
Join👇
@leetcode_cp
@leetcode_cp