var canConstruct = function (ransomNote, magazine) {
let hash = new Map()
for (let i = 0; i < magazine.length; i++) {
if (hash.has(magazine[i])) {
hash.set(magazine[i], hash.get(magazine[i]) + 1)
} else {
hash.set(magazine[i], 1)
}
}
for (let i = 0; i < ransomNote.length; i++) {
const element = ransomNote[i];
if (!hash.has(element)) {
return false
}
if (hash.get(element) > 1) {
hash.set(element, hash.get(element) - 1)
} else {
hash.delete(element)
}
}
return true
};
Runtime: 76 ms, faster than 80.83% of JavaScript online submissions for Ransom Note.
Memory Usage: 37.1 MB, less than 100.00% of JavaScript online submissions for Ransom Note.
func canConstruct(ransomNote string, magazine string) bool {
hash := make(map[rune]int)
for _, value := range magazine {
if _, ok := hash[value]; ok {
hash[value]++
} else {
hash[value] = 1
}
}
for _, value := range ransomNote {
if val, ok := hash[value]; ok {
if val > 1 {
hash[value]--
} else {
delete(hash, value)
}
} else {
return false
}
}
return true
}
Runtime: 16 ms, faster than 38.93% of Go online submissions for Ransom Note.
Memory Usage: 4.3 MB, less than 100.00% of Go online submissions for Ransom Note.
用数组存
var canConstruct = function (ransomNote, magazine) {
let data = []
for (let i = 0; i < 26; i++) {
data[i] = 0
}
for (let i = 0; i < magazine.length; i++) {
data[magazine[i].charCodeAt() - 97]++
}
for (let i = 0; i < ransomNote.length; i++) {
if (data[ransomNote[i].charCodeAt() - 97] === 0) {
return false
} else {
data[ransomNote[i].charCodeAt() - 97]--
}
}
return true
};
Runtime: 60 ms, faster than 98.00% of JavaScript online submissions for Ransom Note.
Memory Usage: 36.7 MB, less than 100.00% of JavaScript online submissions for Ransom Note.
func canConstruct(ransomNote string, magazine string) bool {
data := [26]rune{}
for _, value := range magazine {
data[value-97]++
}w
for _, value := range ransomNote {
if data[value-97] == 0 {
return false
} else {
data[value-97]--
}
}
return true
}
Runtime: 4 ms, faster than 94.70% of Go online submissions for Ransom Note.
Memory Usage: 4.3 MB, less than 100.00% of Go online submissions for Ransom Note.