51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
const sample1 = "mjqjpqmgbljsphdztnvjfqwrcgsmlb";
|
|
const sample2 = "bvwbjplbgvbhsrlpgdmjqwftvncz";
|
|
const sample3 = "nppdvjthqldpwncqszvftbrmjlhg";
|
|
const sample4 = "nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg";
|
|
const sample5 = "zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw";
|
|
const input = await Deno.readTextFile("input.txt");
|
|
|
|
const solvePart1 = (data: string): number => {
|
|
const characters = data.split("");
|
|
const size = 4;
|
|
for (let i = 0; i < characters.length; i += 1) {
|
|
const s = new Set(characters.slice(i, i + size));
|
|
if (s.size === size) {
|
|
return s.size + i;
|
|
}
|
|
}
|
|
return -1;
|
|
};
|
|
|
|
console.log("Sample1:", solvePart1(sample1));
|
|
console.log("Sample2:", solvePart1(sample2));
|
|
console.log("Sample3:", solvePart1(sample3));
|
|
console.log("Sample4:", solvePart1(sample4));
|
|
console.log("Sample5:", solvePart1(sample5));
|
|
console.log("Input", solvePart1(input));
|
|
|
|
const sample6 = "mjqjpqmgbljsphdztnvjfqwrcgsmlb";
|
|
const sample7 = "bvwbjplbgvbhsrlpgdmjqwftvncz";
|
|
const sample8 = "nppdvjthqldpwncqszvftbrmjlhg";
|
|
const sample9 = "nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg";
|
|
const sample10 = "zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw";
|
|
|
|
const solvePart2 = (data: string): number => {
|
|
const characters = data.split("");
|
|
const size = 14;
|
|
for (let i = 0; i < characters.length; i += 1) {
|
|
const s = new Set(characters.slice(i, i + size));
|
|
if (s.size === size) {
|
|
return s.size + i;
|
|
}
|
|
}
|
|
return -1;
|
|
};
|
|
|
|
console.log("Sample6:", solvePart2(sample6));
|
|
console.log("Sample7:", solvePart2(sample7));
|
|
console.log("Sample8:", solvePart2(sample8));
|
|
console.log("Sample9:", solvePart2(sample9));
|
|
console.log("Sample10:", solvePart2(sample10));
|
|
console.log("Input", solvePart2(input));
|