JSFiddle - React, Tailwind, and code Playground
by squarefoo
JavaScript
(function() {
String.prototype.replaceAt=function(index, character) {
return this.substr(0, index) + character + this.substr(index+character.length);
}
var pw = "abdd";
function first() {
return "a";
}
function last() {
return "z"
}
function next(current) {
var next = "";
var N = current.length;
var a = current;
for (var j = N - 1; j >= 0; j--) {
a = a.replaceAt(j, nextChar(a[j]));
if (!(a[j] == first())) {
next = a;
break;
} else {
if (j == 0) {
next = a + first();
}
}
}
return next;
}
function nextChar(chr) {
if (chr == last()) {
return first();
}
return String.fromCharCode(chr.charCodeAt(0) + 1);
}
function valid(solution) {
return solution == pw;
}
function go() {
var solution = first(),
i = 0;
while(solution = next(solution)) {
//console.log(solution);
if (valid(solution)) {
alert(solution);
return;
}
i++;
if (i > 50000) {return;}
}
}
go();
})()