Python에서 문자별로 두 문자열 비교
Vaibhav Vaibhav
2022년1월22일
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