Перейти к содержимому

Alfabank / Альфабанк - тех. собес

Актуальность: 1 кв 2025

Задача: Написать функцию, которая возвращает slice с заданным количеством уникальных случайных чисел. go/slices-arrays

Заголовок раздела «Задача: Написать функцию, которая возвращает slice с заданным количеством уникальных случайных чисел. go/slices-arrays»
func main() {
fmt.Println(uniqRandn(10))
}
func uniqRandn(n int) []int {
return nil
}

Задача: Мы получаем сообщения из источника. У каждого сообщения есть тип (префикс из пяти символов). Нужно запоминать самые свежие сообщения каждого типа. go/basics

Заголовок раздела «Задача: Мы получаем сообщения из источника. У каждого сообщения есть тип (префикс из пяти символов). Нужно запоминать самые свежие сообщения каждого типа. go/basics»
func main() {
consumeMessages()
}
func consumeMessages() {
for {
msg := receiveMessage() // получаем сообщение из источника
typ := getMessageType(msg) // определяем тип сообщения
storeMessageType(msg, typ) // сохраняем сообщение
}
}
func storeMessageType(message string, type_ Type) {
// ...
}
func getMessageType(msg []rune) Type {
return Type{}
}
func receiveMessage() []rune {
return []rune("rand_string ")
}
func main() {
s := "hêllo "
for i := range s {
fmt.Printf("position %d: %c\n ", i, s[i])
}
fmt.Printf("len=%d\n ", len(s))
}

Задача: Реализовать worker pool. Есть 10 задач (функций), каждая засыпает на 1 сек и выводит номер воркера, который эту задачу выполнил. Количество воркеров задается при запуске. go/concurrency

Заголовок раздела «Задача: Реализовать worker pool. Есть 10 задач (функций), каждая засыпает на 1 сек и выводит номер воркера, который эту задачу выполнил. Количество воркеров задается при запуске. go/concurrency»