刷题篇1——介绍一下我是怎么用AI刷题的 | 豆包MarsCode AI刷题

177 阅读3分钟

这一期节目我将会用豆包AI进行刷题操作。 给大家先来一道简单题开胃

找单独的数

问题描述

在一个班级中,每位同学都拿到了一张卡片,上面有一个整数。有趣的是,除了一个数字之外,所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上的数字是什么。

要求:

  1. 设计一个算法,使其时间复杂度为 O(n),其中 n 是班级的人数。
  2. 尽量减少额外空间的使用,以体现你的算法优化能力。
  3. 测试样例

样例1:

输入:cards = [1, 1, 2, 2, 3, 3, 4, 5, 5]
输出:4
解释:拿到数字 4 的同学是唯一一个没有配对的。

样例2:

输入:cards = [0, 1, 0, 1, 2]
输出:2
解释:数字 2 只出现一次,是独特的卡片。

样例3:

输入:cards = [7, 3, 3, 7, 10]
输出:10
解释:10 是班级中唯一一个不重复的数字卡片。

约束条件

  • 1 ≤ cards.length ≤ 1001
  • 0 ≤ cards[i] ≤ 1000
  • 班级人数为奇数
  • 除了一个数字卡片只出现一次外,其余每个数字卡片都恰好出现两次

- 解答:

现在的ai工具非常发达,我一般都是直接把问题给ai

image.png expires=1732892925&x-orig-sign=wnVoToUm8GrEmVcXLaDSWb5ZFlo%3D) 如图所示ai会给我们解题思路 我们还可以进一步让ai把答案输出给我们 我一般会输入:“直接输出完整代码”然后ai就会把完整代码输出了 如下图所示

image.png 我们再看一道题哈哈

数字字符串格式化

问题描述

小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'

和刚刚一样,直接问ai

def solution(s: str) -> str: # 去除前面的无用0 s = s.lstrip('0') if s == '': s = '0'

** **# 分离整数部分和小数部分 if '.' in s: integer_part, decimal_part = s.split('.') else: integer_part, decimal_part = s, ''

# 对整数部分添加千分位逗号
integer_part_with_commas = ''
for i, char in enumerate(reversed(integer_part)):
    if i > 0 and i % 3 == 0:
        integer_part_with_commas = ',' + integer_part_with_commas
    integer_part_with_commas = char + integer_part_with_commas

# 合并整数部分和小数部分
if decimal_part:
    return integer_part_with_commas + '.' + decimal_part
else:
    return integer_part_with_commas

if name == 'main': print(solution("1294512.12412") == '1,294,512.12412') print(solution("0000123456789.99") == '123,456,789.99') print(solution("987654321") == '987,654,321')

得到如上代码,我们的题目就解决了哈哈





这篇文章就到这里