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

Python에서 첫 번째 문자열의 문자로 두 번째 문자열을 구성할 수 있는지 확인

<시간/>

두 개의 문자열 s와 t가 있다고 가정합니다. t가 s의 문자를 사용하여 형성될 수 있는지 여부를 확인해야 합니다.

따라서 입력이 s ="owleh" t ="hello"와 같으면 출력은 True가 됩니다.

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

  • freq :=모든 문자와 주파수를 포함하는 지도
  • 0에서 t - 1 사이의 범위에 있는 i에 대해
    • freq[t[i]]가 0이면
      • 거짓을 반환
    • 주파수[t[i]] :=주파수[t[i]] - 1
  • 참 반환

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

예시 코드

from collections import defaultdict
 
def solve(s, t):
   freq = defaultdict(int)
 
   for i in range(len(s)):
      freq[s[i]] += 1
     
   for i in range(len(t)):
      if freq[t[i]] == 0:
         return False
      freq[t[i]] -= 1
   return True

s = "owhtlleh"
t = "hello"
print(solve(s, t))

입력

"apuuppa"

출력

True