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)) // 13fmt.Printf("Количество символов: %d\n ", utf8.RuneCountInString(s)) // 10
// Преобразованияrunes:=[]rune(s) // string → []runestr:=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].Пример 2
Заголовок раздела «Пример 2»Дайте оценку временной сложности решения.
Задача: Вам нужно спроектировать бэкенд для системы управления мультимедийным оборудованием в переговорных комнатах офиса. Система должна позволять сотрудникам управлять оборудованием удаленно. 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
Фронтенд рассматривать не нужно.