Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 거의 같은 단어 쌍이 있는지 확인하는 프로그램

<시간/>

각 단어의 길이가 같은 단어라는 소문자 문자열 목록이 있다고 가정합니다. 한 문자만 다른 두 개의 문자열이 있는지 확인해야 합니다.

따라서 입력이 단어 =["seed", "pick", "lick", "root", "live"]와 같으면 "pick" 및 "lick"이 거의 같기 때문에 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • s :=새로운 세트
  • 단어의 각 단어에 대해 수행
    • 단어의 각 색인 i와 단어 w에 대해 do
      • 단어[인덱스 0에서 i - 1까지]의 하위 문자열이 s에 있는 경우 "*" 연결 단어[인덱스 i + 1에서 끝까지]가 s에 있으면
        • 참 반환
      • 그렇지 않으면
        • insert(단어[인덱스 0에서 i-1까지] 연결 "*" 연결 단어[인덱스 i + 1에서 끝까지])를 s에 삽입
  • 거짓을 반환

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(words):
   s = set()
   for word in words:
      for i, w in enumerate(word):
         if word[:i] + "*" + word[i + 1 :] in s:
            return True
         else:
            s.add(word[:i] + "*" + word[i + 1 :])

   return False

words = ["seed", "pick", "lick", "root", "live"]
print(solve(words))

입력

["seed", "pick", "lick", "root", "live"]

출력

True