문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.
def solution(myString, pat):
swapped_string = myString.translate(str.maketrans('AB', 'BA'))
if pat in swapped_string:
return 1
else:
return 0
str.maketrans()
: 문자열 변환을 위한 변환 테이블을 생성하는 함수str.translate()
: str.maketrans()
로 생성된 변환 테이블을 사용하여 문자열의 문자를 실제로 변환하는 메서드def solution(myString, pat):
return int(pat.replace('A', 'b').replace('B', 'a') in myString.lower())
📌 궁금증에 대한 결과
replace()
메서드에서 변환 문자에소문자
를 사용하는 이유는 변환된 문자열의 형식이 명확하고 예측 가능하게 하기 위함
- 일관성: 'A'와 'B'를 서로 바꾸는 것이며, 결과적으로 소문자와 대문자를 혼합하지 않으므로 비교할 때 혼동이 없음
- 가독성: 'a'와 'b'를 사용함으로써 변환된 문자열이 더 읽기 쉬울 수 있으며, 대소문자 구분 없이 바뀐 문자를 명확하게 식별할 수 있음
lower()
사용 이유는 대소문자 구분없이 일관되게 비교하기 위함