part5完成，测试通过，待优化