Как определишь что все символы в строке уникальны

«Как определишь что все символы в строке уникальны» — вопрос из категории Python, который задают на 38% собеседований Продуктовый Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для проверки уникальности символов в строке можно использовать несколько подходов:

  1. Использование множества (set) - преобразуем строку в множество и сравниваем длины:
def is_unique(s: str) -> bool:
    return len(s) == len(set(s))
  1. Сортировка и проверка соседей - если символы отсортировать, одинаковые будут рядом:
def is_unique(s: str) -> bool:
    sorted_s = sorted(s)
    for i in range(1, len(sorted_s)):
        if sorted_s[i] == sorted_s[i-1]:
            return False
    return True
  1. Использование хэш-таблицы (подходит для больших строк):
def is_unique(s: str) -> bool:
    chars = set()
    for char in s:
        if char in chars:
            return False
        chars.add(char)
    return True

Первый вариант самый лаконичный и оптимальный для большинства случаев. Временная сложность O(n), так как преобразование в set и проверка длины занимают линейное время.