Skip to content

Instantly share code, notes, and snippets.

@alexislagante
Created December 3, 2015 06:49
Show Gist options
  • Save alexislagante/2812b2f0fe484aef304d to your computer and use it in GitHub Desktop.
Save alexislagante/2812b2f0fe484aef304d to your computer and use it in GitHub Desktop.
Get minimum length string to break a lock
function generateStream(len, alphabet) {
alphabet = alphabet || [0,1]
var hash = {};
var str = '';
for (var i=0;i<len;i++) {
str += alphabet[0];
}
hash[str] = 1;
while (true) {
var currString = str.substring(str.length-len+1);
for (var i=alphabet.length-1; i>=0; i--) {
var nextString = currString + alphabet[i];
if (!hash[nextString]) {
hash[nextString] = 1;
str += alphabet[i];
break;
}
}
if (i==-1) {
break;
}
}
return str;
}
generateStream(4, [0,1,2,3,4,5,6,7,8,9]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment