方向一:题目解析——数字字符串中圆圈的数量计算| 豆包MarsCode AI刷题

107 阅读3分钟

此题是一个相对简单的字符串处理问题,目标是计算一个字符串中包含的圆圈数量。根据题目描述,我们知道数字0、6、9各含有一个圆圈,数字8含有两个圆圈,而其他数字不含有任何圆圈。这个问题可以通过遍历字符串中的每个字符,然后根据字符的值来增加圆圈的数量来解决。

思路解析

  1. 初始化变量:首先,我们需要一个变量来存储圆圈的总数。我们将这个变量初始化为0。
  2. 遍历字符串:接下来,我们遍历输入的字符串s中的每个字符。对于字符串中的每个字符,我们检查它是否是包含圆圈的数字。
  3. 判断字符:对于每个字符,我们使用if语句来判断它是否是'0''6''9''8'。如果是'0''6''9',我们增加1个圆圈;如果是'8',我们增加2个圆圈。
  4. 累加圆圈:每当我们识别出一个包含圆圈的数字时,我们就根据规则增加圆圈的数量。
  5. 返回结果:遍历完字符串后,我们返回圆圈的总数。

图解

由于这个问题涉及到的是字符串和计数,图解可能不是最直观的解释方式。但是,我们可以通过一个简单的例子来说明这个过程:

假设我们有字符串s = "8690",我们可以这样遍历和计数:

  • 遍历到'8',它包含2个圆圈,所以圆圈总数变为2。
  • 遍历到'6',它包含1个圆圈,所以圆圈总数变为3。
  • 遍历到'9',它包含1个圆圈,所以圆圈总数变为4。
  • 遍历到'0',它包含1个圆圈,所以圆圈总数变为5。

最终,我们得到字符串"8690"中总共有5个圆圈。

代码详解

python
def solution(s: str) -> int:
    circle_count = 0  # 初始化圆圈数量为0
    # 遍历字符串中的每个字符
    for char in s:
        if char in ['0', '6', '9']:  # 如果字符是0、6或9
            circle_count += 1  # 增加1个圆圈
        elif char == '8':  # 如果字符是8
            circle_count += 2  # 增加2个圆圈
    # 返回总的圆圈数量
    return circle_count

在这段代码中,我们首先定义了一个函数solution,它接受一个字符串s作为参数。我们初始化了一个变量circle_count来存储圆圈的总数。然后,我们使用一个for循环来遍历字符串中的每个字符。对于每个字符,我们使用if语句来判断它是否是包含圆圈的数字。如果是,我们就根据规则增加圆圈的数量。最后,我们返回计算出的总圆圈数量。

结论

这个问题的解决方案是直接和简单的,它利用了基本的字符串遍历和条件判断。通过这种方式,我们可以有效地计算出字符串中包含的圆圈数量。这个问题的关键在于理解题目的要求,并将其转化为代码中的条件判断逻辑。通过这种方式,我们可以解决类似的问题,只需要根据具体的规则调整条件判断和计数逻辑即可。