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

파이썬에서 제공된 문자열이 같은 위치에 있는 문자에 따라 다른지 알아내는 프로그램

<시간/>

길이가 같은 여러 문자열을 포함하는 배열이 제공된다고 가정합니다. 제공된 문자열 중 2개가 같은 위치에서 단일 문자로 다른지 알아내야 합니다. 이 차이가 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.

따라서 입력이 dict =['pqrs', 'prqs', 'paqs']와 같으면 출력은 True가 됩니다. 입력에 나열된 문자열은 모두 인덱스 1이 다르기 때문에 생성된 출력은 True입니다. 따라서 두 쌍을 취하면 같은 위치에 차이가 있습니다.

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

  • 본 :=새로운 세트

  • dict의 각 단어에 대해 수행

    • 단어의 각 인덱스 i와 문자 c에 대해 수행

      • masked_word :=word[인덱스 0에서 i까지] + '.' + 단어[인덱스 i+1에서 문자열 끝까지]

      • masked_word가 sees에 있는 경우

        • 참을 반환

      • 그렇지 않으면

        • 본 항목에 추가(masked_word)

  • 거짓을 반환

예제(파이썬)

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

def solve(dict):
   seens = set()
   for word in dict:
      for i, c in enumerate(word):
         masked_word = word[:i] + '.' + word[i+1:]
         if masked_word in seens:
            return True
         else:
            seens.add(masked_word)
   return False

print(solve(['pqrs', 'prqs', 'paqs']))

입력

['pqrs', 'prqs', 'paqs']

출력

True