Сбер Ads · июль 2024

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

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

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

Реализовать функцию, которая выполняет N URL-адресов с лимитом K (не более K активных одновременных запросов).

package main 
 
import ( 
 "net/http" 
) 
 
func main() {}
 
// дернуть N урлов с лимитом K (то есть не больше K активных запросов одновременных), сигнатура: 
func callRequestsForURLs(urls []string, K int) []*http.Response { 
 // 
 return nil 
}

2. Задача: Найти k-й элемент с конца связного списка

Реализовать функцию, которая возвращает k-й элемент с конца связного списка.

package main 
 
import ( 
 "fmt" 
) 
 
type Item struct { 
 value int 
 next  *Item 
} 
 
func main() { 
 // 65 19 17 50 55 21 4 
 head := &Item{65, &Item{19, &Item{17, &Item{50, &Item{55, &Item{21, &Item{4, nil}}}}}}} 
 
 fmt.Println(ItemFromEnd(0, head)) // 4 
 fmt.Println(ItemFromEnd(1, head)) // 21 
 fmt.Println(ItemFromEnd(3, head)) // 50 
 fmt.Println(ItemFromEnd(6, head)) // 65 
 fmt.Println(ItemFromEnd(9, head)) // nil 
} 
 
func ItemFromEnd(k int, head *Item) interface{} { 
 // ... 
}