Mô tả
Tại bưu cục Giao Hàng Tiết Kiệm, chị Hằng phụ trách đối soát mã vận đơn giữa hệ thống kho và biên bản giao nhận của shipper. Mỗi mã vận đơn là một chuỗi gồm chữ cái in hoa và chữ số, ví dụ GHTK9A2B. Do thao tác tay trên điện thoại, shipper thỉnh thoảng nhập đúng đủ ký tự nhưng sai thứ tự, chẳng hạn GHTK9A2B thành GHTK2B9A. Nhóm đối soát cần một công cụ nhỏ: cho hai mã vận đơn, hãy xác định xem chúng có phải là hoán vị ký tự của nhau không — tức chứa đúng các ký tự giống nhau, mỗi ký tự xuất hiện đúng bằng số lần ở cả hai mã, bất kể thứ tự sắp xếp.
Đầu vào
Hai chuỗi s1 và s2, mỗi chuỗi là một mã vận đơn gồm các ký tự chữ cái in hoa (A–Z) và chữ số (0–9), không chứa khoảng trắng hay ký tự đặc biệt.
Đầu ra
Trả về true nếu s1 và s2 là hoán vị ký tự của nhau, ngược lại trả về false.
Ràng buộc
- Độ dài mỗi chuỗi:
1 ≤ |s1|, |s2| ≤ 10^5. - Hai chuỗi có thể có độ dài khác nhau.
Ví dụ
Ví dụ 1
- Đầu vào:
"GHTK9A2B", "GHTK2B9A" - Đầu ra:
true - Giải thích: Cả hai mã đều chứa các ký tự
G, H, T, K, 9, A, 2, B— mỗi ký tự đúng một lần, chỉ khác thứ tự. Đây là hoán vị.
Ví dụ 2
- Đầu vào:
"GHTK123", "GHTK135" - Đầu ra:
false - Giải thích: Mã thứ nhất có chữ số
2nhưng mã thứ hai không có; mã thứ hai có chữ số5nhưng mã thứ nhất không có. Tần suất ký tự khác nhau nên không phải hoán vị.