「豆包 MarsCode 代码练习」初体验

228 阅读2分钟

优点

  • UI 非常的漂亮,暗黑色系,代码渲染的也很好看
  • 页面布局比较合理,题目列表、 AI 助手、终端栏都是可以收起的
  • 所选题目都还不错
  • 对话记录与题目对应绑定,方便查看,不容易乱
  • AI 助手的上下文记忆能力比较强,可以持续优化代码
  • AI 助手提供了将代码插入到光标处的功能,比较方便

缺点

  • 题目是以markdown源码显示,并未渲染,不太美观
  • 没有OJ平台,需要自己在代码中编写测试用例测试,不太方便,也没法保证作答的正确性
  • 题目不具有难度和知识点的区分,不利于刷题学习
  • AI 助手的 “给我一些代码提示吧” 会直接将作答的完整代码给出,不利于刷题时的自我思考和学习
  • AI 助手无法在代码编辑器中直接使用,没有代码续写、代码提示等功能,只能通过侧边对话框交互
  • 历史输出没有正常显示

历史输出没有正常显示

代码练习界面截图

406d2e442c1d34f50f3f87a452fd4a45.png

// 计算动态规划的核心部分
    for (int i = 1; i <= len1; i++) {
        for (int j = 1; j <= len2; j++) {
            if (dna1[i - 1] == dna2[j - 1]) {
                dp[i][j] = dp[i - 1][j - 1];
            } else {
                dp[i][j] = std::min(dp[i - 1][j] + 1, // 删除操作
                                    std::min(dp[i][j - 1] + 1, // 增加操作
                                             dp[i - 1][j - 1] + 1)); // 替换操作
            }
        }
    }

AI 助手优化后:

// 计算三个值中的最小值
int minThree(int a, int b, int c) {
    return std::min(a, std::min(b, c));
}

// 计算动态规划的核心部分
    for (int i = 1; i <= len1; i++) {
        for (int j = 1; j <= len2; j++) {
            if (dna1[i - 1] == dna2[j - 1]) {
                dp[i][j] = dp[i - 1][j - 1];
            } else {
                dp[i][j] = minThree(dp[i - 1][j] + 1,  // 删除操作
                                    dp[i][j - 1] + 1,  // 增加操作
                                    dp[i - 1][j - 1] + 1); // 替换操作
            }
        }
    }

#豆包MarsCode刷题挑战# 总体使用体验还是很不错的,希望继续改进,提高用户使用体验!!!