青训营X豆包MarsCode技术训练营伴学笔记|实践记录以及工具使用(3)|豆包MarsCode AI刷题

237 阅读3分钟

在这篇伴学笔记中,我想对使用豆包MarsCode AI刷题平台的另一个基础功能进行总结与整理,即使用AI检查编辑区的代码。下面我将用一道具体的算法题进行举例说明。

一、题目描述

小I拿到了一串数字字符,她想知道这串数字中一共有多少个圆圈。具体规则如下:

  • 数字0、6、9各含有一个圆圈。
  • 数字8含有两个圆圈。
  • 其他数字不含有任何圆圈。

测试样例

样例1:

输入:s = "1234567890"
输出:5

样例2:

输入:s = "8690"
输出:5

样例3:

输入:s = "1111"
输出:0

二、题目解析

这道题目总体而言难度不大,是一道很经典的算法题,利用字典进行字符串匹配。具体而言,可以通过遍历字符串中的每个字符,统计数字字符中的圆圈个数来解决。根据题目规则:

  • 数字 069 各含有 1 个圆圈。
  • 数字 8 含有 2 个圆圈。
  • 其他数字 (1, 2, 3, 4, 5, 7) 不含任何圆圈。

因此,可以使用一个字典将每个数字与其对应的圆圈个数映射起来,然后逐个累加统计。

三、代码编写

依据上面的题目分析,可以编写如下的算法代码:

def solution(s: str) -> int:
    
    # 圆圈计数映射
    circle_count = {
        '0': 1, '6': 1, '9': 1, '8': 2,  # 有圆圈的数字
        '1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '7': 0  # 无圆圈的数字
    }
    
    # 统计圆圈总数
    total_circles = 0
    for char in s:
        total_circles += circle_count.get(char, 0)
    
    return total_circles

if __name__ == '__main__':
    # 测试样例
    print(solution(s = "1234567890") == 5)
    print(solution(s = "8690") == 5)
    print(solution(s = "1111") == 0)

四、AI功能的使用

在提交代码之前,不妨使用一下豆包MarsCode AI刷题平台右侧的AI功能,里面有有一项“帮我检查一下代码”,点击后,AI会分析你目前所写的代码,解释你的代码,并给出一些建设性意见。下面是由AI帮我检查代码后给出的一些反馈。

QQ20241121-173239.png

QQ20241121-173348.png

现在,从AI的角度看来,这个代码是没有什么问题的,同时还保持了良好的使用测试用例的习惯。其实到此为止已经可以提交了,但是还可以让AI帮助我们检查一下这个代码的时间空间复杂度,你可以这样与AI对话,“帮我分析一下代码的时间和空间复杂度”。那么AI会帮你分析,并给出如下的回复。

QQ20241121-173625.png

至此,我们便可以提交代码,不出所料,顺利通过用例测试,并成功提交。

五、总结

综上所述,AI刷题中检查已写代码的功能能够帮助使用者快速定位代码错误,优化代码结构,提供一些即时的反馈与学习建议,同时包括一些自动化测试与验证。

AI检查代码功能的核心优势在于提升效率、优化代码质量和促进学习成长。通过结合AI提供的自动化工具,开发者能够更专注于解决实际问题,同时加速技能进阶。