Files
LeetCode-Go/leetcode/0677.Map-Sum-Pairs/677. Map Sum Pairs.go
2021-08-14 10:16:17 +08:00

44 lines
793 B
Go

package leetcode
type MapSum struct {
keys map[string]int
}
/** Initialize your data structure here. */
func Constructor() MapSum {
return MapSum{make(map[string]int)}
}
func (this *MapSum) Insert(key string, val int) {
this.keys[key] = val
}
func (this *MapSum) Sum(prefix string) int {
prefixAsRunes, res := []rune(prefix), 0
for key, val := range this.keys {
if len(key) >= len(prefix) {
shouldSum := true
for i, char := range key {
if i >= len(prefixAsRunes) {
break
}
if prefixAsRunes[i] != char {
shouldSum = false
break
}
}
if shouldSum {
res += val
}
}
}
return res
}
/**
* Your MapSum object will be instantiated and called as such:
* obj := Constructor();
* obj.Insert(key,val);
* param_2 := obj.Sum(prefix);
*/