길이가 같은 여러 문자열을 포함하는 배열이 제공된다고 가정합니다. 제공된 문자열 중 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