RGB色值转换为整数值+小S超辣火锅挑战 | 豆包MarsCode AI刷题

80 阅读3分钟

RGB色值转换为整数值

  • 题目解析:
    • 思路;

      1. 理解RGB数值,取值范围[0,255]
      2. 分别将十进制转换为十六进制
      3. 整体转换为十进制
    • 流程

输入:rgb(192, 192, 192)

  1. 解析RGB字符串:
    • 去掉 "rgb(" 和 ")",得到 "192, 192, 192"
    • 按 ", " 分割,得到 ['192', '192', '192']
  2. 转换为十六进制:
    • 192 转换为十六进制是 C0
    • 192 转换为十六进制是 C0
    • 192 转换为十六进制是 C0
  3. 组合并转换为整数:
    • 组合成 C0C0C0
    • 转换为十进制整数:12632256

输出:12632256

  • 代码实现

image.png

  • 知识总结:

    1. 十六进制转换
    • 使用 format 函数将整数转换为两位的十六进制字符串。
    • 使用 int 函数将十六进制字符串转换为十进制整数。
  • 学习计划

    1. 制定刷题计划
    • 每天固定时间刷题,保持持续性。

    • 从简单题目开始,逐步增加难度。

    1. 利用错题进行针对性学习
    • 记录错题,分析错误原因。

    • 针对性地复习相关知识点,避免重复犯错。

    1. 总结与反思
    • 每完成一组题目后,总结解题思路和技巧。
    • 定期回顾错题,确保不再犯同样的错误。
  • 工具运用:

    1.利用AI提供的解题思路和代码提示,快速掌握解题方法。

    3.通过AI的纠错功能,及时发现并改正代码中的错误。

小S超辣火锅挑战

  • 题目分析
  1. 围成一圈:这意味着我们需要模拟一个环形结构。
  2. 顺时针数k个:每次数到第k个人时,这个人需要吃一口火锅。
  3. 耐受值:每个人有一个耐受值,表示他最多可以吃多少口火锅。一旦达到这个值,这个人就会离席。
  4. 离席顺序:我们需要按顺序输出每个离席的人的编号。
  • 代码实现
image.png

关键点

1.双端队列deque的使用使得我们可以高效地进行插入和删除操作,非常适合模拟环形结构。

2.左旋操作rotate(1-k)用于模拟顺时针数k个位置,确保每次出队的人是正确的。

3.耐受度处理:每次出队的人耐受度减1,根据耐受度决定是否重新加入队列或记录离席顺序。

  • 知识总结

1.双端队列(deque)

  • 定义deque是Python标准库collections模块中的一个数据结构,支持从两端高效地插入和删除操作。

  • 使用场景:适合需要频繁进行头部和尾部操作的场景,如模拟环形结构、广度优先搜索(BFS)等。

  • 常用方法

    • deque.append(x):在队列右侧添加元素x。
    • deque.appendleft(x):在队列左侧添加元素x。
    • deque.pop():从队列右侧移除并返回一个元素。
    • deque.popleft():从队列左侧移除并返回一个元素。
    • deque.rotate(n):将队列中的元素向右旋转n步(负数表示向左旋转)。

2.算法

  1. 模拟环形结构

    • 问题背景:在这个问题中,我们需要模拟一个环形结构,即一个首尾相连的序列。
    • 实现方法:使用dequerotate方法可以高效地模拟环形结构中的顺时针移动。
  2. 循环处理

    • 问题背景:我们需要对一组元素进行循环处理,直到满足某个条件(如所有人都离席)。
    • 实现方法:使用while循环,不断从队列中取出元素进行处理,直到队列为空。