Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem các ký tự của một chuỗi có thể được hoán đổi để tạo thành chuỗi khác trong Python hay không

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