Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra có thể hoán vị ký tự chuỗi này thành chuỗi kia trong Python

Cho hai chuỗi s và t. Kiểm tra xem có thể sắp xếp lại (hoán vị) các ký tự của s để được t hay không.

Ví dụ: s = "worldlloeh", t = "helloworld" → True.

Giải thuật

  • Nếu độ dài khác nhau → False.
  • Đếm tần suất ký tự trong s.
  • Duyệt t, giảm tần suất. Nếu tần suất âm → False.
  • Cuối cùng trả về True.

Mã 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