Cho mảng chuỗi, tìm chuỗi đầu tiên không có ký tự nào trùng lặp (tất cả ký tự đều duy nhất). Trả về false nếu không tìm thấy.
Ví dụ
Mảng: ['54gdgdfe3', '434ffd', '43frdf', '43fdhnh', 'wgcxhjny', 'fsdf34']
Chuỗi 'wgcxhjny' không có ký tự trùng.
Giải pháp
Mã triển khai:
const arr = ['54gdgdfe3', '434ffd', '43frdf', '43fdhnh', 'wgcxhjny', 'fsdf34'];
const isUnique = str => {
// Kiểm tra mỗi ký tự có indexOf === lastIndexOf không
return str.split('').every(el => str.indexOf(el) === str.lastIndexOf(el));
};
const findUniqueString = arr => {
for (let i = 0; i < arr.length; i++) {
if (isUnique(arr[i])) return arr[i];
}
return false;
};
console.log(findUniqueString(arr));
Kết quả
Đầu ra trong console:
wgcxhjny
Tối ưu: Dùng Set: new Set(str).size === str.length.