Python에서 문자별로 두 문자열 비교

Vaibhav Vaibhav 2022년1월22일
Python에서 문자별로 두 문자열 비교

Python은 이해하기 쉬운 구문과 배후에서 작동하는 강력한 API를 통해 정수 유형, 문자열 유형, 부동 유형, 이중 유형 등의 데이터 작업을 비교적 원활한 작업으로 만드는 범용 언어입니다.

이 기사에서는 문자열과 관련된 일부 작업에 대해 설명합니다. 그리고 작업은 Python을 사용하여 문자별로 두 문자열을 비교하는 것입니다.

Python에서 문자별로 문자열 비교

파이썬에서는 for 루프나 while 루프를 사용하여 두 문자열을 문자별로 비교할 수 있습니다.

두 문자열의 길이가 다를 수 있으므로 비교를 위해 문자열을 반복할 때 더 작은 길이만 고려해야 합니다. 비교를 위해 동일한 인덱스에 있는 두 문자열의 동일한 문자 수를 계산합니다.

이것은 두 문자열을 비교하는 한 가지 방법일 뿐입니다.

비교를 위해 문자열에 있는 각 문자의 빈도를 계산하거나 해밍 거리를 계산할 수 있습니다. 해밍 거리는 문자열의 문자가 다른 인덱스의 수입니다.

다음 Python 코드는 위에서 이야기한 것을 구현합니다.

def compare_strings(a, b):
    if a is None or b is None:
        print("Number of Same Characters: 0")
        return

    size = min(len(a), len(b))  # Finding the minimum length
    count = 0  # A counter to keep track of same characters

    for i in range(size):
        if a[i] == b[i]:
            count += 1  # Updating the counter when characters are same at an index

    print("Number of Same Characters:", count)


compare_strings("homophones", "homonyms")
compare_strings("apple", "orange")
compare_strings("apple", "applepie")
compare_strings("pasta", "pizza")
compare_strings(None, None)
compare_strings(None, "valorant")
compare_strings("minecraft", None)

출력:

Number of Same Characters: 4
Number of Same Characters: 0
Number of Same Characters: 5
Number of Same Characters: 2
Number of Same Characters: 0
Number of Same Characters: 0
Number of Same Characters: 0

위 코드의 시간복잡도는 O(n)이고 공간복잡도는 O(1)입니다. 개수와 최소 길이만 저장하기 때문입니다.

위의 코드는 for 루프를 사용합니다. 위에서 언급했듯이 while 루프를 사용하여 동일한 기능을 구현할 수도 있습니다. 동일한 내용은 다음 코드를 참조하십시오.

def compare_strings(a, b):
    if a is None or b is None:
        print("Number of Same Characters: 0")
        return

    size = min(len(a), len(b))  # Finding the minimum length
    count = 0  # A counter to keep track of same characters
    i = 0

    while i < size:
        if a[i] == b[i]:
            count += 1  # Updating the counter when characters are same at an index

        i += 1

    print("Number of Same Characters:", count)


compare_strings("homophones", "homonyms")
compare_strings("apple", "orange")
compare_strings("apple", "applepie")
compare_strings("pasta", "pizza")
compare_strings(None, None)
compare_strings(None, "valorant")
compare_strings("minecraft", None)

출력:

Number of Same Characters: 4
Number of Same Characters: 0
Number of Same Characters: 5
Number of Same Characters: 2
Number of Same Characters: 0
Number of Same Characters: 0
Number of Same Characters: 0

위 코드의 시간 복잡도는 O(n)이고 공간 복잡도는 O(1)입니다. 카운트와 최소 길이만 저장하기 때문입니다.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

관련 문장 - Python String