Published
Edited
Dec 5, 2018
Insert cell
Insert cell
Insert cell
part2 = min[1].length
Insert cell
min = _.minBy(Object.entries(shorter), r => r[1].length)
Insert cell
shorter = removals(input)
Insert cell
function removals(polymer) {
const chars = _.uniq(polymer.split('').map(c => c.toLowerCase()))
const results = {}
for (const char of chars) {
results[char] = chainReact(polymer.replace(new RegExp(char, 'ig'), ''))
}
return results
}
Insert cell
Insert cell
function react(polymer) {
let last = polymer[0]
for (let i = 1; i < polymer.length; i++) {
if (toggle(polymer[i]) === last) {
polymer = polymer.substring(0, i-1) + polymer.substring(i+1)
i -= 2
}
last = polymer[i]
}
return polymer
}
Insert cell
function chainReact(polymer) {
let next = react(polymer)
while (polymer !== next) {
polymer = next
next = react(polymer)
}
return polymer
}
Insert cell
Insert cell
Insert cell
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