두 개의 문자열 S와 T가 있다고 가정하고 편집 거리가 1인지 0인지 확인해야 합니다. 편집 작업은 문자 삭제, 문자 추가 또는 문자를 다른 문자로 바꾸는 것으로 정의할 수 있습니다.
따라서 입력이 S ="hello", T ="hallo"와 같으면 이 두 문자열의 편집 거리가 1이므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- m :=S의 크기, n :=T의 크기
- i :=0, j :=0
- 카운트:=0
- 만약 |m - n|> 1, 다음
- 거짓을 반환
- i
- S[i]가 T[j]와 같지 않으면
- 카운트가 1과 같으면
- 거짓을 반환
- m
- j :=j + 1
- 그렇지 않으면 m> n일 때
- 나는 :=나는 + 1
- 그렇지 않으면
- i :=i + 1, j :=j + 1
- 카운트 :=카운트 + 1
- S[i]가 T[j]와 같지 않으면
- i :=i + 1, j :=j + 1
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class 솔루션:def solve(self, S, T):m, n =len(S), len(T) i, j =0, 0 count =0 if abs(m - n)> 1:return in:i +=1인 경우 False를 반환합니다. 그렇지 않으면:i +=1 j +=1 count +=1 else:i +=1 j +=1 return Trueob =Solution()S ="hello"T ="hallo"print(ob.solve(S, T))사전> 입력
"안녕하세요", "안녕하세요"출력
사실