Skip to content

Instantly share code, notes, and snippets.

@sharmaabhinav
Last active December 12, 2017 11:13
Show Gist options
  • Save sharmaabhinav/95ea5c7f4812b17a561370294e8bff62 to your computer and use it in GitHub Desktop.
Save sharmaabhinav/95ea5c7f4812b17a561370294e8bff62 to your computer and use it in GitHub Desktop.
function makeHash (arr) {
var map = {}
for (var i=0;i<arr.length;i++) {
if (map.hasOwnProperty(arr[i])) {
map[arr[i]] += 1
} else {
map[arr[i]] = 1
}
}
return map
}
function canCharacterBeMade (char, map) {
var digits = ('' + char).split('').map(function (digit) {
return Number(digit)
})
var digitMap = makeHash(digits)
var canBeMade = true
var keys = Object.keys(digitMap)
for(d of keys) {
d = Number(d)
if (!(map.hasOwnProperty(d) && map[d] >= digitMap[d])){
canBeMade = false
}
}
return canBeMade
}
function makeAlphabets (arr) {
var map = makeHash(arr)
var characters = []
for (i=65; i <= 90;i++) {
if (canCharacterBeMade(i, map)) {
characters.push(String.fromCharCode(i))
}
}
for (i=97; i <= 122;i++) {
if (canCharacterBeMade(i, map)) {
characters.push(String.fromCharCode(i))
}
}
return characters
}
console.log(makeAlphabets([1, 0, 1, 0, 6,5]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment