📌  相关文章
📜  给定二进制字符串中1位和2位字符的计数(1)

📅  最后修改于: 2023-12-03 15:41:16.411000             🧑  作者: Mango

给定二进制字符串中1和2位字符的计数

本程序旨在统计一个给定的二进制字符串中,1和2位字符的数量。

使用方法

该程序可以通过传入一个二进制字符串作为参数来获取该字符串中,1和2位字符的计数结果。调用示例:

from count_12_bits import count_bits

binary_str = "10101010100010100101110"
count_result = count_bits(binary_str)
print(count_result)
返回值说明

该程序返回一个字典类型的数据,包含了1和2位字符的数量:

{
    "1_bit_count": int,
    "2_bit_count": int
}

其中,1_bit_count表示1位字符的数量,2_bit_count表示2位字符的数量。请注意,该计数包含字符串中重合的部分。例如,二进制字符串"1100"中,既包含了1个2位字符,也包含了2个1位字符。

实现方式

实现本程序的关键在于遍历整个给定的二进制字符串,并对其中的1位和2位字符进行计数。这可以通过遍历字符串后,判断当前字符的前一个字符是否属于1或2位字符来完成。代码示例:

def count_bits(binary_str: str) -> dict[str, int]:

    count_dict = {
        "1_bit_count": 0,
        "2_bit_count": 0
    }
    
    pre_char = None
    for char in binary_str:

        if char == "1":
            if pre_char == "1":
                count_dict["2_bit_count"] += 1
            else:
                count_dict["1_bit_count"] += 1

        pre_char = char

    return count_dict

该函数首先初始化了一个字典类型的计数结果。然后,通过遍历字符串,判断当前字符是否为1,并且根据前一个字符是否为1来判断当前字符属于1位还是2位字符。最后,返回统计结果。