728x90
반응형
def zip_strings(str1, str2, str3):
ww = ''
for pair in zip(str1, str2):
# print(pair)
if str1[0] == str3[0]: # dog, cat -> dcoagt / cat, dog -> dcoagt / str1과 str2 순서가 바뀌어도 True가 되도록 함
ww += list(pair)[0]
ww += list(pair)[1]
elif str2[0] == str3[0]: # dog, cat -> dcoagt / cat, dog -> dcoagt / str1과 str2 순서가 바뀌어도 True가 되도록 함
ww += list(pair)[1]
ww += list(pair)[0]
# print(ww)
if len(str1) > len(str2): # str1이 길고, str2가 짧으면 str1의 뒷부분을 붙인다
ww += str1[len(str2):]
# print(ww,'/',str1[len(str2)+1:])
elif len(str1) < len(str2): # str2가 길고, str1이 짧으면 str2의 뒷부분을 붙인다
ww += str2[len(str1):]
# print(ww,'/',str2[len(str1)+1:])
# str1, str2로 만든 문자set와 str3의 문자를 비교 한다.
# print('>>', ww)
rtn = True # 결과는 True 설정하고 문자 하나씩 비교하면서 하나라도 다르면 False가 됨
for i in range(len(str3)):
if ww[i] != str3[i]:
rtn = False
break
return rtn
print(zip_strings('dog','cat','dcoagt'))
print(zip_strings('cat','dog','dcoagt'))
print(zip_strings('dog','cat','cdoagt'))
print(zip_strings('computing','math','cmoamtphuting'))
print(zip_strings('math','computing','cmoamtphuting'))
print(zip_strings('math','computing','mcoamtphuting'))
결과
True
True
False
True
True
False
-
assert zip_strings('dog','cat','dcoagt') == True
assert zip_strings('cat','dog','dcoagt') == True
assert zip_strings('dog','cat','cdoagt') == False
assert zip_strings('computing','math','cmoamtphuting') == True
assert zip_strings('math','computing','cmoamtphuting') == True
assert zip_strings('math','computing','mcoamtphuting') == False
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 점수에 따른 등급 부여하기 (0) | 2022.11.23 |
---|---|
[파이썬] 문제 : 2차원 배열에서 최대값 찾기 (0) | 2022.11.23 |
[파이썬] 문제 : 주소록 프로그램 (0) | 2022.11.23 |
[파이썬] 문제 : 계산기 프로그램 만들기 (0) | 2022.11.22 |
[파이썬] 문제 : text파일 읽고 수정해서 다른 파일로 저장 (0) | 2022.11.22 |
댓글