Mô tả
Tổ an ninh mạng của Viettel Money vừa thu thập một bản mô tả rủi ro dạng văn bản tự do từ quá trình rà soát ứng dụng chuyển tiền. Để sơ đồ hóa luồng dữ liệu và đánh giá mức độ nghiêm trọng, phân tích viên cần đếm chính xác xem mỗi thuật ngữ bảo mật xuất hiện bao nhiêu lần trong bản mô tả đó.
Bạn được cho một chuỗi moTa chứa văn bản rủi ro và một mảng tuKhoa gồm các thuật ngữ cần theo dõi. Hãy đếm số lần xuất hiện của từng từ khóa trong văn bản. Việc tìm kiếm có phân biệt chữ hoa chữ thường và không cho phép đè chéo — mỗi ký tự trong moTa chỉ được dùng để khớp với nhiều nhất một từ khóa tại các vị trí khác nhau, nhưng các lần khớp phải nằm ở các chỉ số bắt đầu khác nhau.
Kết quả trả về là một mảng các cặp [tuKhoa, tanSo] được sắp xếp theo thứ tự từ điển tăng dần của tuKhoa.
Đầu vào
Hàm nhận hai tham số:
moTa: chuỗi văn bản rủi ro.tuKhoa: mảng các chuỗi từ khóa bảo mật cần đếm.
Đầu ra
Trả về một mảng số nguyên 2 chiều, mỗi phần tử là một cặp [tuKhoa, tanSo], trong đó tuKhoa là chuỗi gốc và tanSo là số lần xuất hiện (số nguyên không âm). Các cặp được sắp xếp theo tuKhoa theo thứ tự từ điển tăng dần.
Ràng buộc
- Độ dài
moTakhông vượt quá 5000 ký tự. - Số lượng từ khóa trong
tuKhoatừ 1 đến 100. - Độ dài mỗi từ khóa từ 1 đến 50 ký tự.
- Mỗi từ khóa xuất hiện nhiều nhất một lần trong danh sách
tuKhoa(không trùng lặp). - Ký tự trong
moTavàtuKhoathuộc bảng chữ cái tiếng Anh, chữ số và một số ký tự hiệu dụng như_,.,-, khoảng trắng.
Ví dụ
Ví dụ 1
- `moTa = "nguoi dung gui token token bi trung lap token"
tuKhoa = ["token", "xss", "nguoi dung"]
Các từ khóa xuất hiện:
"token"nằm ở chỉ số 14, 20, và 37 → tần suất 3."xss"không có trong văn bản → tần suất 0."nguoi dung"nằm ở chỉ số 0 → tần suất 1.
Sắp xếp theo thứ tự từ điển: "nguoi dung" < "token" < "xss".
Kết quả: [["nguoi dung", 1], ["token", 3], ["xss", 0]]
Ví dụ 2
-
moTa = "aaaa" -
tuKhoa = ["aa", "aaa"] -
"aa"khớp tại các chỉ số bắt đầu 0, 1, 2 → tần suất 3. -
"aaa"khớp tại chỉ số bắt đầu 0, 1 → tần suất 2.
Sắp xếp theo từ điển: "aa" < "aaa".
Kết quả: [["aa", 3], ["aaa", 2]]