创意标题匹配问题 | 豆包MarsCode AI刷题

120 阅读3分钟

摘要

刷题是每位程序员成长的必经之路,以往刷题大多是通过自身实践+搜索题目解读的方式进行,有时难免会有点枯燥而且效率较低。本文将通过一个真实的刷题过程深度体验下MarsCode AI刷题这款辅助学习产品。

刷题实践

首先我们在题目列表页面选择想挑战的题目,这里以创意标题匹配为例。 点击每道题目会进入答题页面,页面主要有三列:

  • 最左边是题目介绍
  • 中间是代码编辑器
  • 右边是工具栏,其中包含AI编程助手入口和Debug入口

整体页面效果十分简洁:

image.png

AI调试助手体验

以上面的题目为例,首先我们可以通过AI助手解读题目:

然后AI助手给出了解题思路,包含具体算法和核心数据结构选型,最后还给出了示例代码:

我们这里先直接运行示例代码,很遗憾,没有通过测试用例,然后我们可以继续和AI助手对话找出bug并修复它:

我们发现AI助手在采用不借助标准库的方式解决问题,而且代码看上去较为臃肿,要知道这只是一道「简单」题而已😁。因此我们继续「引导」AI助手切换到优雅的实现方式,最终AI助手在我们的威逼利诱下给出借助regex标准库的实现方式:

如上图,AI助手甚至向我们强调了性能和代码风格这两个新手不太重视的问题,尤其是string_view的介绍,非常nice。 最终,在AI助手的帮助下,我们完成了这道题:

image.png

但是到此就可以结束这道题还为时尚早,测试用例检查无误后,我们还可以让AI助手帮我们分析下当前实现的时间复杂度,这个我认为也是刷题的核心工作之一,接下来看AI助手的表现:

总结

个人认为刷题主要是为了训练基本的编程思想以及掌握常用的编程套路,以前刷题可能需要花较多时间去不断修改代码,效率较低。现在有了AI助手的协助,刷题效率提升的同时,还能连带学习一些最佳编程实践,真可谓是事半功倍。

BTW

使用AI刷题时,有几点可能需要注意下:

  • 和AI助手交流方式是对话式的,所以代码编辑区中的代码更新时,如果AI助手的回答和编辑区不匹配,可以通过右上方「新建对话」按钮解决。
  • 目前代码编辑区的调试功能还有些小bug,可以尽量在使用调试功能前手动保存,然后你还会发现MarsCode还会自动帮你beautify代码,正如VS Code中有些插件实现的那样。