Public
Edited
Dec 6, 2022
1 fork
2 stars
Insert cell
Insert cell
Insert cell
test = `mjqjpqmgbljsphdztnvjfqwrcgsmlb`
Insert cell
function findStart(input, k) {
for (let i = k, n = input.length; i < n; ++i) {
if (new Set(input.slice(i - k, i)).size === k) {
return i;
}
}
}
Insert cell
function findPacketStart(input) {
return findStart(input, 4);
}
Insert cell
findPacketStart(test)
Insert cell
Insert cell
test1 = `bvwbjplbgvbhsrlpgdmjqwftvncz` // first marker after character 5
Insert cell
findPacketStart(test1)
Insert cell
test2 = `nppdvjthqldpwncqszvftbrmjlhg` // first marker after character 6
Insert cell
findPacketStart(test2)
Insert cell
test3 = `nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg` // first marker after character 10
Insert cell
findPacketStart(test3)
Insert cell
test4 = `zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw` // first marker after character 11
Insert cell
findPacketStart(test4)
Insert cell
Insert cell
input = FileAttachment("input.txt").text()
Insert cell
findPacketStart(input)
Insert cell
Insert cell
test6 = `mjqjpqmgbljsphdztnvjfqwrcgsmlb` // first marker after character 19
Insert cell
findMessageStart(test6)
Insert cell
test7 = `bvwbjplbgvbhsrlpgdmjqwftvncz` // first marker after character 23
Insert cell
findMessageStart(test7)
Insert cell
test8 = `nppdvjthqldpwncqszvftbrmjlhg` // first marker after character 23
Insert cell
findMessageStart(test8)
Insert cell
test9 = `nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg` // first marker after character 29
Insert cell
findMessageStart(test9)
Insert cell
test10 = `zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw` // first marker after character 26
Insert cell
findMessageStart(test10)
Insert cell
Insert cell
findMessageStart(input)
Insert cell
function findMessageStart(input) {
return findStart(input, 14);
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more