문자열비교
문자열비교
기본적으로 ChatGPT를 이용하여 틀을 잡고 만든 것
두 개의 문자열을 비교하는 문제
두 개의 문자열이 같은지 판별하고 같다면 True
다르다면 False를 출력
문자열비교 1 (문자열순열확인)
두 문자열이 서로 순열인지 확인하는 알고리즘
해석 : 각 문자가 중복 없이 모두 서로에게 존재 하는 것
def is_premutation(str1, str2):
# 두 문자열의 길이가 같지 않으면 순열이 아니다.
if len(str1) != len(str2):
return False
# 각 문자열에서 문자의 개수를 셀 수 있도록 딕셔너리를 생성해준다.
freq1 = {}
freq2 = {}
# 각 문자에 대한 빈도를 세어준다.
for i in range(len(str1)):
# str1에 대한 빈도 추가
freq1[str1[i]] = freq1.get(str1[i],0) + 1
# str2에 대한 빈도 추가
freq2[str2[i]] = freq2.get(str2[i],0) + 1
# 두 딕셔너리가 같은지 확인
return freq1 == freq2
print(is_permutation("abc", "cba"))
print(is_permutation("abcd", "abdc"))
print(is_permutation("aaa", "aab"))
print(is_permutation("hello", "world"))
True
True
False
False
- 함수
- is_permutation 함수는 str1 및 str2의 두 문자열을 사용합니다.
- 입력으로 str1이 str2의 순열이면 True를 반환하고 그렇지 않으면 False를 반환합니다.
- 알고리즘
- 두 문자열이 동일한지 확인합니다.
길이가 같지 않으면 서로 순열이 될 수 없으므로 함수는 False를 반환합니다. - freq1 및 < code>freq2, 두 문자열에 각 문자의 빈도를 저장합니다.
사전의 get 메서드는 주어진 키에 대한 값을 가져오는 데 사용되며 키가 존재하지 않으면 기본값(이 경우 0)을 반환합니다. - 문자열의 각 문자를 반복하여 두 문자열의 각 문자에 대한 빈도를 업데이트합니다.
str1의 각 문자에 대한 빈도 수는 사전 freq1에 저장되고 str2의 각 문자에 대한 빈도 수는 사전에 저장됩니다. freq2. - == 연산자를 사용하여 두 사전이 동일한지 확인합니다.
두 사전의 키와 값이 같으면 두 문자열이 서로 순열이므로 함수는 True를 반환합니다.
두 사전이 같지 않으면 두 문자열이 서로 순열이 아니므로 함수는 False를 반환합니다.
- 두 문자열이 동일한지 확인합니다.
- 추가방법
- sorted 사용
# 문자열을 정렬하여 비교 sorted(str1) == sorted(str2)
- sorted 사용