Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 문자열의 모든 문자가 고유한지 확인하는 방법

문자열 s가 주어졌을 때, 이 문자열을 구성하는 모든 문자가 서로 중복되지 않고 고유한지 확인해야 합니다.

예를 들어, 입력 문자열이 "world"라면 각 문자가 한 번씩만 등장하므로 결과는 True가 됩니다.

문제 해결 접근 방식

이 문제는 파이썬의 set(집합) 자료구조를 활용하면 매우 간단하게 해결할 수 있습니다. 집합은 중복된 요소를 허용하지 않는 특성이 있기 때문입니다. 해결 절차는 다음과 같습니다.

  • 문자열 s의 모든 문자를 요소로 하는 새로운 집합(set_var)을 생성합니다.
  • 집합 set_var의 크기가 원본 문자열 s의 길이와 같다면 True를, 그렇지 않다면 False를 반환합니다.

중복된 문자가 존재한다면 집합의 크기가 문자열의 길이보다 작아지므로, 두 길이를 비교하는 것만으로 고유 여부를 판별할 수 있습니다.

예제 코드

아래 구현 예시를 통해 더 자세히 이해해 보겠습니다.

class Solution:
    def solve(self, s):
        set_var = set(s)
        return len(set_var) == len(s)

ob = Solution()
print(ob.solve('hello'))
print(ob.solve('world'))

입력

hello
world

출력

False
True

'hello'에는 'l'이 두 번 등장하여 중복이 존재하므로 False가 출력되고, 'world'는 모든 문자가 고유하므로 True가 출력됩니다.

시간 복잡도 분석

집합 생성 연산은 문자열의 길이 n에 대해 O(n)의 시간이 소요되며, 길이 비교는 O(1)입니다. 따라서 전체 시간 복잡도는 O(n), 공간 복잡도 역시 집합 저장을 위해 O(n)입니다. 이 알고리즘은 선형 시간 안에 효율적으로 동작합니다.