- 为了助力本届青训营课程的学习,青训营项目组为同学们精心挑选了练手习题 📖
- 每两天发布一篇,包含选择题和实操题各一题(第二天将发布答案解析)🥳
- 同学们可以在评论区留下你的解题过程并进行互动交流 ✍️
一、【单选】下列关于 Python 的说法错误的是?
a. Python 是强类型语言
b. Python 中所有变量本质上都是指针
c. Python 运行时会根据类型提示(type hints)检查变量类型
d. CPython 不支持尾递归优化
答案 & 解析
c;
Python 运行时并不会检查变量类型, 类型提示主要给第三方工具使用, 比如IDE可以据此给出方法/属性的自动补全建议。
二、给定包含 N 个任务 task 的数组 tasks 和整数 K,和一个可并发调用的执行函数 execute,要求实现以下逻辑:
- execute并发调用次数不超过10
- 以最快速度执行完所有task
- 使用golang
答案 & 解析
利用并发 + channel 缓冲区实现。
type Task int
func handle(tasks []Task, execute func(task Task)) {
wg := sync.WaitGroup{}
ch := make(chan struct{}, 10)
for i, _ := range tasks {
ch <- struct{}{}
wg.Add(1)
task := tasks[i]
go func() {
defer wg.Done()
// execute task
execute(task)
<-ch
}()
}
wg.Wait()
}
今天是 DAY6 啦,同学们加油哦 😉