豆包辅助刷题记录 | 豆包MarsCode AI刷题

135 阅读2分钟

代码解析

在写算法题的时候,可能会经常忘记对一些边界条件进行判断,从而导致代码在运行时出现不符合预期的错误,同时由于人的大脑在顺着自己的思路思考时可能会自己补充出一些内容,导致无法排除错误。在使用豆包刷题时可以在写完代码后,让 AI 检查一下代码的是否缺少对边界情况的判断。并且使用豆包解析后的代码还可以将一些不必要的判断与循环优化掉,使代码整体的逻辑更加简洁。

思路提示

豆包可以在做算法没有思路时,可以通过不断地询问豆包,学习当前知识点。

使用示例

黑产行为序列识别

问题描述

小S 和小M 正在研究一种黑产行为序列识别技术。网络黑色产业链是指使用互联网技术进行非法活动,例如网络攻击、窃取信息、诈骗等。为了保护用户和平台的安全,识别黑产行为的序列是十分关键的一步。

他们的任务是:给定一个行为序列S,表示为一个字符串,以及一个识别模式P。如果模式P是序列S的子序列,则说明存在匹配的黑产行为。
现在,给定多个序列S和对应的识别模式P,找出序列中出现匹配模式的次数,结果需要对10^9+7取模。

image.png

使用了豆包的代码提示之后,提示我可以使用动态规划来解决问题,同时向我给出了动态规划的状态转移公式。

在依据豆包的提示写出代码之后,我让豆包对我当前的代码进行优化,豆包在给出优化的时候,并未对优化的详细情况进行解析。但是在此过程中,如果是对于动态规划完全不了解的话,可能无法理解解题思路,需要对豆包进行多次询问,并且在部分特殊的逻辑判断中,豆包会将正确的逻辑识别为错误逻辑,不断提示,需要用户主动通知豆包。

image.png

随后我希望豆包可以以 KMP 的思路解决这个问题,同时向我讲解详细讲解实现思路。

image.png

豆包在展示了实现代码后还给出了一行提示,使得我们在刷题时可以及时指出了使用 KMP 是一个错误思路,因为题目要求我们判断子序列的匹配次数,这与 KMP 解决的问题并不一样,在刷题时,可以以自己当前的思路多次询问豆包,确保的思路不会偏离题目。