Viết hàm so sánh 2 chuỗi, trả về true nếu chúng chứa cùng ký tự (bỏ qua thứ tự) HOẶC khác nhau tối đa n ký tự.
Ví dụ
Chuỗi 1: 'some random text'
Chuỗi 2: 'some r@ndom text'
Chỉ khác '@' vs 'a' → 1 khác biệt → với n=1 trả về true.
Giải pháp
Mã triển khai (so sánh từng vị trí):
const str = 'some random text';
const str2 = 'some r@ndom text';
const deviationMatching = (first, second, num) => {
let count = 0;
for (let i = 0; i < first.length; i++) {
if (!second.includes(first[i])) count++;
if (count > num) return false;
}
return true;
};
console.log(deviationMatching(str, str2, 1));
Kết quả
Đầu ra trong console:
true
Lưu ý: Code gốc so sánh theo vị trí (includes kiểm tra tồn tại bất kỳ đâu). Nếu muốn so khớp multiset, cần đếm tần suất.