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

Python에서 한 문자열의 문자를 다른 문자열로 바꿀 수 있는지 확인

<시간/>

두 개의 문자열 s와 t가 있다고 가정하고 s의 문자를 교환하여 t를 생성할 수 있는지 확인해야 합니다.

따라서 입력이 s ="worldlloeh" t ="helloworld"와 같으면 "worldlloeh"에서 "helloworld"를 만들기 위해 문자를 교환할 수 있으므로 출력은 True가 됩니다.

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

  • s_len :=s의 크기, t_len :=t의 크기
  • s_len이 t_len과 같지 않으면
    • 거짓을 반환
  • freq :=s에 모든 문자와 주파수를 저장하는 맵
  • 0에서 t_len 범위에 있는 i에 대해 다음을 수행합니다.
    • 주파수[t[i]] :=주파수[t[i]] - 1
    • 주파수[t[i]] <0이면
      • 거짓을 반환
  • 참 반환

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

from collections import defaultdict
def solve(s, t):
   s_len = len(s)
   t_len = len(t)
   if (s_len != t_len):
      return False
   freq = defaultdict(int)
   for char in s :
      freq[char] += 1
   for i in range(t_len) :
      freq[t[i]] -= 1
      if freq[t[i]] < 0:
         return False
   return True
s = "worldlloeh"
t = "helloworld"
print(solve(s, t))

입력

"worldlloeh", "helloworld"

출력

True