美文网首页每日打卡
2021-11-14 677键值映射

2021-11-14 677键值映射

作者: 16孙一凡通工 | 来源:发表于2021-11-14 16:20 被阅读0次

java hashmap解决insert方法,接着用startsWith方法解决前缀判定,但这不具有普适性,因此参考了前缀树的思路

Go版本

type tribeTree struct{
    children [26]*tribeTree
    val      int
    }

type MapSum struct {
   root *tribeTree
   cnt   map[string]int

}


func Constructor() MapSum {
return MapSum{&tribeTree{},map[string]int{}}
}


func (m *MapSum) Insert(key string, val int)  {
  delta:=val
  if m.cnt[key]>0{
      delta-=m.cnt[key];
  }
  m.cnt[key]=val;
  node:=m.root;
  for _,value:=range key{
      value-='a'
      if  node.children[value]==nil{
          node.children[value]=&tribeTree{}
      }
      node=node.children[value]
      node.val+=delta
  }

}


func (m *MapSum) Sum(prefix string) int {

    node:=m.root;
    for _,value:=range prefix{
        value-='a';
        if node.children[value]==nil{
            return 0
        }
        node=node.children[value]
    }
    return node.val;

}
/**
 * Your MapSum object will be instantiated and called as such:
 * obj := Constructor();
 * obj.Insert(key,val);
 * param_2 := obj.Sum(prefix);
 */

java版本

class MapSum {
     HashMap<String,Integer> hashmap=new HashMap<>();

    public MapSum() {
         HashMap<String,Integer> hashmap=new HashMap<>();
       this.hashmap=hashmap;
    }
    
    public void insert(String key, int val) {
        hashmap.put(key,val);

    }
    
    public int sum(String prefix) {
        int tmp=0;

        for( String key:this.hashmap.keySet()){
          if(key.startsWith(prefix)){
              tmp=tmp+hashmap.get(key);
          } 
        }
        return tmp;

    }
}

相关文章

  • 2021-11-14 677键值映射

    java hashmap解决insert方法,接着用startsWith方法解决前缀判定,但这不具有普适性,因此...

  • 677. 键值映射

    实现一个 MapSum 类里的两个方法,insert 和 sum。对于方法 insert,你将得到一对(字符串,整...

  • LeetCode 677. 键值映射

    677. 键值映射 实现一个 MapSum 类里的两个方法,insert 和 sum。 对于方法 insert,你...

  • 677. 键值映射(Python)

    题目 难度:★★★☆☆类型:字符串方法:前缀树 力扣链接请移步本题传送门[https://leetcode-cn....

  • 键值映射

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/map-su...

  • python字典类型

    映射是一种键(索引)和值(数据)的一一对应关系,字典是映射关系的体现 定义:字典是键值对的集合,键值对在字典中是无...

  • Sass 映射函数

    本节我们来看一下 Sass 中的映射函数,Sass 中的映射是由键值对(key/value)组成。映射是不可变的,...

  • python 实现 map 的分词

    Map 的作用,即数据的映射,用于把一组键值对映射成另一组新的键值对。白话就是对数据按照一定的格式进行归整。举个例...

  • 数据结构之集合与映射(二)

    本篇主要内容:映射Map及其实现,Map的应用,Map与Set的对比 映射Map 数据结构里的所谓映射是键值对的数...

  • Java集合框架(七)—Map

    Map Map 是一个键值对(key-value)映射接口。Map映射中不能包含重复的键;每个键最多只能映射到一个...

网友评论

    本文标题:2021-11-14 677键值映射

    本文链接:https://www.haomeiwen.com/subject/koqxtrtx.html