Купер · октябрь 2024

Тех собес на middle-senior Golang Разработчик в Купер

middle-senior Тех собес 1 задача

1. Задача: Реализовать структуру данных Trie (префиксное дерево) для автодополнения слов с учетом их веса

package main

import (
  "fmt"
  "sort"
  "sync"
  "time"
)

type Word struct {
  Val    string
  Weight int
}

type Node struct {
  Next  map[rune]*Node
  Words []*Word
  mu    sync.RWMutex
}

func NewNode() *Node {
  return &Node{
    Next:  make(map[rune]*Node),
    Words: make([]*Word, 0),
    mu:    sync.RWMutex{},
  }
}

type Trie struct {
  root    *Node
  weights map[string]*Word
}

func NewTrie() *Trie {
  return &Trie{
    root:    NewNode(),
    weights: make(map[string]*Word),
  }
}

func (t *Trie) Insert(word string, weight int) {
  node := t.root

  w, ok :=…
Конец фрагмента

Премиум-подписка

Открывает это интервью целиком и все материалы направления «Golang Разработчик».

в этом собесе: 1 задача с кодом
  • Ещё 490 текстовых собесов направления
  • 344 видеозаписи собеседований
  • Приоритетная поддержка
1490₽/мес