Техническое собеседование
Задача 1: Конкурентные запросы с ограничением
Реализовать функцию, которая дергает N урлов с лимитом K (то есть не больше K активных запросов одновременных).
package main
import (
"net/http"
)
func main() {}
// дернуть N урлов с лимитом K (то есть не больше K активных запросов одновременных), сигнатура:
func callRequestsForURLs(urls []string, K int) []*http.Response {
//
return nil
}
Задача 2: K-й элемент с конца связного списка
Реализовать функцию ItemFromEnd(k int, head *Item) interface{}, которая возвращает 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{} {
// ...
}