📌  相关文章
📜  用于检查字符串是否包含所有唯一字符的Python程序

📅  最后修改于: 2022-05-13 01:56:56.300000             🧑  作者: Mango

用于检查字符串是否包含所有唯一字符的Python程序

实现一种算法来确定一个字符串是否包含所有唯一字符。
例子:

一种解决方案是创建一个布尔值数组,其中索引 i 处的标志指示字母表中的字符i 是否包含在字符串中。第二次看到这个字符时,您可以立即返回 false。
如果字符串长度超过字母表中唯一字符的数量,您也可以返回 false。

Python
def isUniqueChars(st):
 
    # String length cannot be more than
    # 256.
    if len(st) > 256:
        return False
 
    # Initialize occurrences of all characters
    char_set = [False] * 128
 
    # For every character, check if it exists
    # in char_set
    for i in range(0, len(st)):
 
        # Find ASCII value and check if it
        # exists in set.
        val = ord(st[i])
        if char_set[val]:
            return False
 
        char_set[val] = True
 
    return True
 
# driver code
st = "abcd"
print(isUniqueChars(st))


Python3
from collections import Counter
 
 
def isUniqueChars(string):
 
    # Counting frequency
    freq = Counter(string)
 
    if(len(freq) == len(string)):
        return True
    else:
        return False
 
 
# driver code
st = "abcd"
print(isUniqueChars(st))
# This code is contributed by vikkycirus


输出:
True

方法 #2:使用内置Python函数:

  • 使用Counter()函数计算字符的频率
  • 如果频率字典中的键(给出不同字符的计数)等于字符串的长度,则打印 True 否则 False

下面是实现:

Python3

from collections import Counter
 
 
def isUniqueChars(string):
 
    # Counting frequency
    freq = Counter(string)
 
    if(len(freq) == len(string)):
        return True
    else:
        return False
 
 
# driver code
st = "abcd"
print(isUniqueChars(st))
# This code is contributed by vikkycirus

输出:

True

时间复杂度: O(N)