두 개의 문장 s와 t가 있다고 가정합니다. 유사 여부를 확인해야 합니다. 여기 문장에는 영문자만 있습니다. 주어진 문장 중 하나에 임의의 문장(비어 있을 수 있음)을 추가하여 두 문장이 같아질 수 있는 경우 두 문장이 유사하다고 합니다.
따라서 입력이 s ="we live at city Kolkata" t ="city Kolkata"와 같으면 "we live in" 문장을 추가하여 t에서 s를 얻을 수 있으므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
s1 :=s의 단어 목록
-
s2 :=t의 단어 목록
-
s1의 크기> s2의 크기인 경우
-
s1과 s2를 교환
-
-
s1이 비어 있지 않은 동안 수행
-
s2[0]이 s1[0]과 같으면
-
s2에서 첫 단어 삭제
-
s1에서 첫 단어 삭제
-
-
그렇지 않으면 s2의 마지막 단어가 s1의 마지막 단어와 같을 때
-
s2에서 마지막 단어 삭제
-
s1에서 마지막 단어 삭제
-
-
그렇지 않으면
-
거짓 반환
-
-
-
true를 반환
예
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(s, t): s1 = s.split() s2 = t.split() if len(s1) > len(s2): s1,s2 = s2,s1 while(s1): if(s2[0]==s1[0]): s2.pop(0) s1.pop(0) elif(s2[-1]==s1[-1]): s2.pop() s1.pop() else: return(False) return(True) s = "we live at city Kolkata" t = "city Kolkata" print(solve(s, t))
입력
"we live at city Kolkata", "city Kolkata"
출력
True