MTS / МТС (Cloud)
- Найти проблемы в коде:
go/puzzles
Задача: (код без описания) go/basics
Заголовок раздела «Задача: (код без описания) go/basics»type OrderService struct { BookingService BookingService UserService UserService}
type UserService interface { LockUser(User) error UnlockUser(User) error}
type User struct { ID string}
type Receipt struct { ID string BookingCode string BookedAt string}
type BookingService interface { BookFlight() (string, *BookingServiceError)}
type BookingServiceError struct { error TryAgain bool}
func (s *OrderService) HandleBookingOrder(user User) *Receipt { receipt := Receipt{ID: uuid.New().String()} if err := s.UserService.LockUser(user); err != nil { log.Logger.Err(err) return nil } for { bookingCode, err := s.BookingService.BookFlight()
switch { case err == nil: receipt.BookedAt = time.Now().Format(time.RFC3339) receipt.BookingCode = bookingCode return &receipt case err.TryAgain: default: log.Logger.Err(err) break } } if err := s.UserService.UnlockUser(user); err != nil { log.Logger.Err(err) return nil }
return &receipt}- Написать метод (класс и импорты не нужны) на вход которого приходит список слов. На выходе надо вернуть список слов, где каждый подписок содержит слова анаграммы (одинаковые слова слева направо и справа налево).
algorithms/general
Задача: (код без описания) go/basics
Заголовок раздела «Задача: (код без описания) go/basics»// ["set "] ->[["set "]]// ["set ", "get "] ->[["set "], ["get "]]// ["set ", "get ", "teg "] ->[["get ", "teg "], ["set "]]
func groupAnagrams(words []string) [][]string {
}- Оценить сложность, если в каждом слове до k символов.
algorithms/complexity - Найти проблемы в коде:
go/puzzles
Задача: (код без описания) go/basics
Заголовок раздела «Задача: (код без описания) go/basics»var c int
type Trace struct { // some fields}
type Sender interface { Send(Trace)}
func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 }}- У «типичного» CRUD сервиса - в какой-то момент некоторые методы стали работать медленно и сервис начал таймаутить. Сервис состоит из:
architecture/system-design - Application Load Balancer (L7) - прием входящих запросов и терминирование tls
network/dns-tls - Backend (REST, Java/Kotlin или Go) - обработка входящих запросов и бизнес логика
network/http - Database (postgres) - хранение и обработка sql запросов
sql/general
Как правильно действовать чтобы понять причину проблем и выработать решения для улучшения ситуации?
- На вход подается строка s, содержащая только символы «(», «)», «{», «}», «[» и «]». «<»’>’«a»«я» Определите, является ли входная строка валидной.
go/strings-runes
Входная строка валидна, если
Заголовок раздела «Входная строка валидна, если»- Все открытые скобки закрыты скобками того же типа.
algorithms/data-structures - Скобки должны закрываться в правильном порядке.
algorithms/data-structures - Каждой закрывающей скобке соответствует открытая скобка того же типа.
algorithms/data-structures
Задача: (код без описания) go/basics
Заголовок раздела «Задача: (код без описания) go/basics»func isValid(s string) bool {}- Напишите SQL-запрос, который вернет имя и сумму бонуса каждого сотрудника с бонусом менее 1000.
sql/general
Задача: (код без описания) sql/general
Заголовок раздела «Задача: (код без описания) sql/general»Таблица: Employee
+-------------+---------+|Column Name |Type|+-------------+---------+|empId |int ||name |varchar ||supervisor |int ||salary |int |+-------------+---------+Задача: empId - это столбец с уникальными значениями для этой таблицы. В каждой строке этой таблицы указаны имя и идентификатор сотрудника, а также его зарплата и идентификатор его руководителя. sql/general
Заголовок раздела «Задача: empId - это столбец с уникальными значениями для этой таблицы. В каждой строке этой таблицы указаны имя и идентификатор сотрудника, а также его зарплата и идентификатор его руководителя. sql/general»Таблица: Bonus
+-------------+------+|Column Name |Type|+-------------+------+|empId |int ||bonus |int |+-------------+------+empId - столбец уникальных значений для этой таблицы. empId - это внешний ключ (справочный столбец) для empId из таблицы «Employee». Каждая строка этой таблицы содержит идентификатор сотрудника и соответствующий бонус.
- Еще были вопросы про кубер и контейнерицазию на уровне ОС, но очень поверхностные