본문 바로가기
프로그램

[파이썬] 문제 : 입력받은 문자열의 포함 검색

by 오디세이99 2022. 11. 23.
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
반응형

댓글