두 개의 문자열 s와 t가 있다고 가정합니다. t가 s의 문자를 사용하여 형성될 수 있는지 여부를 확인해야 합니다.
따라서 입력이 s ="owleh" t ="hello"와 같으면 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- freq :=모든 문자와 주파수를 포함하는 지도
- 0에서 t - 1 사이의 범위에 있는 i에 대해
- freq[t[i]]가 0이면
- 거짓을 반환
- 주파수[t[i]] :=주파수[t[i]] - 1
- freq[t[i]]가 0이면
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
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