소문자로 된 두 개의 문자열 A와 B가 있다고 가정합니다. 결과가 B와 같도록 A에서 두 글자를 바꿀 수 있는지 확인해야 합니다.
따라서 입력이 A ="ba", B ="ab"와 같으면 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- A의 크기가 B의 크기와 같지 않으면
- 거짓을 반환
- 그렇지 않고 A와 B에 공통적이지 않은 요소가 있으면
- 거짓을 반환
- 그렇지 않고 A가 B와 동일하고 A에서 모든 문자가 구별되는 경우
- 거짓을 반환
- 그렇지 않으면
- 개수:=0
- 0~A 크기 범위의 i에 대해
- A[i]가 B[i]와 같지 않으면
- 카운트 :=카운트 + 1
- 카운트가 3과 같으면
- 거짓을 반환
- A[i]가 B[i]와 같지 않으면
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def buddyStrings(self, A, B): if len(A)!=len(B): return False elif sorted(A)!=sorted(B): return False elif A==B and len(set(A))==len(A): return False else: count=0 for i in range(len(A)): if A[i]!=B[i]: count+=1 if count==3: return False return True ob = Solution() print(ob.buddyStrings("ba","ab"))
입력
"ba","ab"
출력
True