Giả sử chúng ta có hai chuỗi s và t, chúng ta phải kiểm tra xem chúng ta có thể tạo ra t hay không bằng cách hoán đổi ký tự của s.
Vì vậy, nếu đầu vào là s ="worldlloeh" t ="helloworld", thì đầu ra sẽ là True vì chúng ta có thể hoán đổi các ký tự từ "worldlloeh" thành "helloworld".
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- s_len:=kích thước của s, t_len:=kích thước của t
- nếu s_len không giống với t_len, thì
- trả về Sai
- freq:=một bản đồ để lưu trữ tất cả các ký tự và tần số của chúng trong s
- đối với tôi trong phạm vi từ 0 đến t_len, thực hiện
- freq [t [i]]:=freq [t [i]] - 1
- nếu freq [t [i]] <0, thì
- trả về Sai
- trả về True
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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))
Đầu vào
"worldlloeh", "helloworld"
Đầu ra
True