728x90
반응형

문제 : 두 문자열 A, B를 입력 받아 A의 뒷부분과 B의 앞부분이 일치하는 부분을 겹쳐서 하나의 문자열을 만듬
overlap(A, B) 함수를 만들어 C를 반환한다.
# a = 'commu' b = 'mummy' = commummy
# a = 'boxok' b = 'xbox' = boxokxbox
# a = 'tttttt' b = 'tttttt' = tttttt
# a = 'waycom' b = 'ycomget' =
def overlap(a, b): # overlap 함수
if a == b: # 인수 두 문자열이 같으면 문자열 a 를 리턴한다.
rtn = a
else: # 인수 두 문자열이 같지 않으면
min_len = len(a) if len(a) < len(b) else len(b) # 두 문자열의 길이가 짧은 길이 찾기
idx = -1 # 두 문자열이 같은 문자의 인덱스 저장용 변수
for i in range(1, min_len): # 두 문자열 중 짧은 문자열의 문자수만큼 반복
# print(a[-i:], '/', b[:i])
if a[-i:] == b[:i]: # a[-1:]은 뒤문자, b[:i]는 앞문자를 비교 해서 같으면
idx = i # 같은 문자 위치(인덱스)를 저장
if idx != -1: # idx가 초기화 값과 같이 않으면 같은 문자열 인덱스가 있다는 것
rtn = a + b[idx:] # a문자열은 그대로 쓰고, b 문자열은 찾은 인덱스 이후 문자들만 사용해 두 문자열을 붙임
else: # idx가 초기화 값과 같으면 a,b 두 문자열에서 같은 것이 없다는 것
rtn = a + b # 같은 문자열이 없음녀 두 문자열을 붙임
return rtn # 리턴
A = input("문자열1 : ") # 입력 받기
B = input("문자열2 : ")
C = overlap(A, B) # 함수를 호출하고, 결과를 C로 받는다.
print(C) # 결과 출력
결과
문자열1 : commu
문자열2 : mummy
commummy
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : [1,1..0.5,05]리스트 컴프리헨션 코드 만들기 (0) | 2022.11.18 |
---|---|
[알고리즘] 분할정보(Divide and Conquer) 알고리즘 (0) | 2022.11.18 |
[파이썬] 문제 : 가변인수로 받은 값으로 정렬 (0) | 2022.11.14 |
[파이썬] 문제 : 완전수 판단 (0) | 2022.11.14 |
[파이썬] 문제 : 반지름, 높이 입력받아 원기둥의 표면부피,표면면적 계산 (0) | 2022.11.14 |
댓글