📜  计算给定字符串中唯一字符的数量(1)

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

计算给定字符串中唯一字符的数量

有时候我们需要计算一个字符串中有多少个不同的字符,这就需要统计唯一字符的数量。下面我们将介绍几种计算唯一字符数量的方法。

方法一:使用集合(set)
def unique_char_set(s: str) -> int:
    return len(set(s))

使用集合(set)可以方便地去除重复的字符。将字符串转换为set后,set中的元素即为唯一字符,返回set的长度即为唯一字符数量。

方法二:使用字典(dict)
def unique_char_dict(s: str) -> int:
    char_dict = {}
    for char in s:
        char_dict[char] = char_dict.get(char, 0) + 1
    return len(char_dict)

使用字典(dict)的方法可以更加灵活地处理唯一字符,方法是遍历字符串中的字符,使用字典记录每个字符出现的次数,最后返回字典中键的数量即为唯一字符数量。

方法三:使用位运算
def unique_char_bit(s: str) -> int:
    checker = 0
    for char in s:
        val = ord(char) - ord('a')
        if (checker & (1 << val)) > 0:
            pass
        else:
            checker |= (1 << val)
    return bin(checker).count('1')

使用位运算的方法可以节省空间和时间。通过位运算将字符转换为一个二进制位,如果该二进制位已经为1,说明该字符重复出现,否则将该二进制位设置为1,以便下一次判断。最后返回二进制位中值为1的数量即为唯一字符数量。

总结

以上是计算字符串中唯一字符数量的三种方法,适用于不同场景下的需求。使用集合(set)的方法简单易懂,使用字典(dict)的方法灵活性较高,使用位运算的方法节省空间和时间。通过选择不同的方法,我们可以根据具体的需求选择最适合的计算方式。