实践做题真例使用AI过程及感悟| 豆包MarsCode AI 刷题

52 阅读5分钟

问题描述

小M在工作时遇到了一个问题,他需要将用户输入的不带千分位逗号的数字字符串转换为带千分位逗号的格式,并且保留小数部分。小M还发现,有时候输入的数字字符串前面会有无用的 0,这些也需要精简掉。请你帮助小M编写程序,完成这个任务。


测试样例

样例1:

输入:s = "1294512.12412"
输出:'1,294,512.12412'

样例2:

输入:s = "0000123456789.99"
输出:'123,456,789.99'

样例3:

输入:s = "987654321"
输出:'987,654,321'


问题理解

你需要将一个不带千分位逗号的数字字符串转换为带千分位逗号的格式,并且保留小数部分。此外,输入的数字字符串前面可能会有无用的 0,这些也需要精简掉。

数据结构选择

  • 字符串:由于我们需要处理字符串中的字符,并且需要插入逗号,字符串是最合适的数据结构。

算法步骤

  1. 去除前导零

    • 遍历字符串,找到第一个非零字符的位置,截取该位置之后的子字符串。
  2. 分离整数部分和小数部分

    • 找到小数点的位置,将字符串分为整数部分和小数部分。
  3. 添加千分位逗号

    • 从整数部分的末尾开始,每三位插入一个逗号。
  4. 合并结果

    • 将处理后的整数部分和小数部分合并成最终的结果字符串。

详细步骤

  1. 去除前导零

    • 使用一个循环遍历字符串,找到第一个非零字符的位置,截取该位置之后的子字符串。
  2. 分离整数部分和小数部分

    • 使用 find 方法找到小数点的位置,如果没有小数点,则整数部分就是整个字符串。
  3. 添加千分位逗号

    • 从整数部分的末尾开始,使用一个循环,每三位插入一个逗号。可以使用 reverse 方法反转字符串,插入逗号后再反转回来。
  4. 合并结果

    • 将处理后的整数部分和小数部分合并成最终的结果字符串。

示例

假设输入字符串为 "0000123456789.99"

  1. 去除前导零

    • 找到第一个非零字符的位置,截取该位置之后的子字符串,得到 "123456789.99"
  2. 分离整数部分和小数部分

    • 找到小数点的位置,将字符串分为整数部分 "123456789" 和小数部分 ".99"
  3. 添加千分位逗号

    • 从整数部分的末尾开始,每三位插入一个逗号,得到 "123,456,789"
  4. 合并结果

    • 将处理后的整数部分和小数部分合并成最终的结果字符串,得到 "123,456,789.99"

AI 刷题的优势

使用 AI 进行编程练习和刷题有以下几个显著的优势:

  1. 即时反馈

    • AI 可以立即检查你的代码并提供反馈,帮助你快速发现和纠正错误。
  2. 个性化指导

    • AI 可以根据你的代码和问题提供个性化的指导,帮助你理解问题的核心和解决方案。
  3. 代码优化建议

    • AI 可以提供代码优化建议,帮助你提高代码的效率和可读性。
  4. 学习资源整合

    • AI 可以整合各种学习资源,如文档、教程和示例代码,帮助你更好地理解和掌握编程知识。
  5. 自动化测试

    • AI 可以自动运行测试用例,帮助你验证代码的正确性,并提供详细的测试结果。

实践案例分析

案例:解决千分位逗号问题

假设你在解决一个将数字字符串转换为带千分位逗号的格式的问题。以下是如何通过 AI 刷题功能帮助你学习的实践案例:

  1. 即时反馈

    • 当你编写代码时,AI 可以立即检查你的代码并提供反馈。例如,如果你在去除前导零时使用了错误的循环条件,AI 可以立即指出错误并提供正确的代码示例。
  2. 个性化指导

    • AI 可以根据你的代码提供个性化的指导。例如,如果你在分离整数部分和小数部分时遇到了困难,AI 可以解释如何使用 find 方法找到小数点的位置,并提供详细的代码示例。
  3. 代码优化建议

    • AI 可以提供代码优化建议,帮助你提高代码的效率和可读性。例如,如果你在添加千分位逗号时使用了复杂的循环结构,AI 可以建议使用 reverse 方法和 insert 方法来简化代码。
  4. 学习资源整合

    • AI 可以整合各种学习资源,帮助你更好地理解和掌握编程知识。例如,如果你对 std::string 类的某些方法不熟悉,AI 可以提供相关的文档和教程链接,帮助你快速学习。
  5. 自动化测试

    • AI 可以自动运行测试用例,帮助你验证代码的正确性。例如,当你完成代码编写后,AI 可以自动运行测试用例,并提供详细的测试结果,帮助你发现和修复潜在的错误。