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

Sber (Селекти) - 2

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

Задача: Как ты думаешь, какая сложность данной логической структуры, и как бы ты ее оптимизировал? algorithms/complexity

Заголовок раздела «Задача: Как ты думаешь, какая сложность данной логической структуры, и как бы ты ее оптимизировал? algorithms/complexity»
package main
import "fmt "
func main() {
var dayOfWeek int
fmt.Println("Введите день недели:")
fmt.Scanln(&dayOfWeek)
if dayOfWeek == 1 {
fmt.Println("Monday ")
} else if dayOfWeek == 2 {
fmt.Println("Tuesday ")
} else if dayOfWeek == 3 {
fmt.Println("Wednesday ")
} else if dayOfWeek == 4 {
fmt.Println("Thursday ")
} else if dayOfWeek == 5 {
fmt.Println("Friday ")
} else if dayOfWeek == 6 {
fmt.Println("Saturday ")
} else if dayOfWeek == 7 {
fmt.Println("Sunday ")
}
}
  • Если переделать на switch, какая сложность будет?
  • Знаешь ли ты об оптимизации jump table? Какие условия для нее нужны?

Задача: Представьте, что вы получили доступ к новому репозиторию. Как бы вы проанализировали структуру ветвления: определили количество веток, их состояние и взаимосвязи? go/structs-methods

Заголовок раздела «Задача: Представьте, что вы получили доступ к новому репозиторию. Как бы вы проанализировали структуру ветвления: определили количество веток, их состояние и взаимосвязи? go/structs-methods»
package main
import(
"fmt "
"unicode/utf8 "
"unsafe "
)
func main() {
s:="Hello, Мир "
// Длина string vs количество символов
fmt.Printf("Длина в байтах: %d\n ", len(s)) // 13
fmt.Printf("Количество символов: %d\n ", utf8.RuneCountInString(s)) // 10
// Преобразования
runes:=[]rune(s) // string → []rune
str:=string(runes) // []rune → string
fmt.Printf("string в []rune: %s\n ", len(runes))
fmt.Printf("Обратно в string: %s\n ", str)
// Сравнение размера в памяти
fmt.Printf("Размер string: %d байт\n ", unsafe.Sizeof(s)) // 16 байт
fmt.Printf("Размер rune: %d байт\n ", unsafe.Sizeof('A')) // 4 байта
fmt.Printf("Размер []rune: %d байт\n ", unsafe.Sizeof(runes)) // 24 байта
fmt.Printf("Длина в байтах []rune: %d байт\n ", len(runes)*4) // 40 байт
}

Задача: В репозитории есть ветка feature/smr-3. Нужно выполнить операцию rebase из squash в develop. Если при слиянии третьей фич-ветки в develop через merge возникает конфликт, исчезнет ли он при использовании rebase? Изменится ли хэш вливаемого коммита? hr-behavioral/teamwork

Заголовок раздела «Задача: В репозитории есть ветка feature/smr-3. Нужно выполнить операцию rebase из squash в develop. Если при слиянии третьей фич-ветки в develop через merge возникает конфликт, исчезнет ли он при использовании rebase? Изменится ли хэш вливаемого коммита? hr-behavioral/teamwork»

Задача: Что здесь происходит? Посчитайте области видимости переменной el и объясните, почему паники не будет. go/errors-panic

Заголовок раздела «Задача: Что здесь происходит? Посчитайте области видимости переменной el и объясните, почему паники не будет. go/errors-panic»
s := []string{"1 ", "2 ", "3 "}
for _, el := range s {
el := el
fmt.Printf("el = %+v ", el)
}

Задача: Что здесь происходит? Найдите проблему и предложите вариант исправления. go/basics

Заголовок раздела «Задача: Что здесь происходит? Найдите проблему и предложите вариант исправления. go/basics»
var rmdirs []func()
for dir := range tempDirs() {
os.MkdirAll(dir, 0755) // Создание родительских каталогов
rmdirs = append(rmdirs, func() {
os.RemoveAll(dir)
})
}
// ...do some work...
for _, rmdir := range rmdirs {
rmdir() // Очистка
}

Задача: Вам дано большое целое число, представленное в виде массива целых чисел digits, где каждый digits[i] - это i-я цифра целого числа. Цифры упорядочены от наиболее значимых к наименее значимым слева направо. Большое целое число не содержит начальных нулей. Необходимо увеличить большое целое число на единицу и вернуть полученный массив цифр. go/slices-arrays

Заголовок раздела «Задача: Вам дано большое целое число, представленное в виде массива целых чисел digits, где каждый digits[i] - это i-я цифра целого числа. Цифры упорядочены от наиболее значимых к наименее значимым слева направо. Большое целое число не содержит начальных нулей. Необходимо увеличить большое целое число на единицу и вернуть полученный массив цифр. go/slices-arrays»
Input: digits = [4,3,2,1]
Output: [4,3,2,2]
Explanation: The array represents the integer 4321.
Incrementing by one gives 4321 + 1 = 4322.
Thus, the result should be [4,3,2,2].
Input: digits = [9]
Output: [1,0]
Explanation: The array represents the integer 9.
Incrementing by one gives 9 + 1 = 10.
Thus, the result should be [1,0].

Дайте оценку временной сложности решения.

Задача: Вам нужно спроектировать бэкенд для системы управления мультимедийным оборудованием в переговорных комнатах офиса. Система должна позволять сотрудникам управлять оборудованием удаленно. architecture/system-design

Заголовок раздела «Задача: Вам нужно спроектировать бэкенд для системы управления мультимедийным оборудованием в переговорных комнатах офиса. Система должна позволять сотрудникам управлять оборудованием удаленно. architecture/system-design»
  • Переговорка (Room): ID, название, этаж, тип помещения (малая/средняя/большая); linux-os/memory
  • Оборудование (Device): ID, тип (проектор, телевизор, видеоконференция, аудиосистема), модель, статус (online/offline/error); go/errors-panic
  • Связь: В одной переговорке может быть несколько устройств. architecture/system-design
  • Получение списка всех переговорок с их оборудованием; architecture/system-design
  • Просмотр текущего состояния конкретного устройства; architecture/system-design
  • Управление устройствами: включение/выключение, регулировка громкости; architecture/system-design
  • Система должна отслеживать и сохранять историю изменений состояния устройств. architecture/system-design

Фронтенд рассматривать не нужно.