Cần viết hàm JavaScript nhận một chuỗi. Hàm tìm và trả về độ dài chuỗi con dài nhất bị kẹp giữa hai chữ cái giống nhau.
Ví dụ - Nếu chuỗi đầu vào:
const str = 'avbghvh';
Đầu ra nên là:
const output = 3;
vì chuỗi con dài nhất mong muốn là 'bgh' giữa hai chữ v.
Ví dụ
const str = 'avbghvh';
const longestSub = (str = '') => {
const map = new Map();
let max = -1;
for(let i = 0; i < str.length; i++){
if(map.has(str.charAt(i))){
max = Math.max(max, i - map.get(str.charAt(i)) - 1);
}else{
map.set(str.charAt(i), i);
};
};
return max;
};
console.log(longestSub(str));
Kết quả
Điều này sẽ tạo ra đầu ra sau:
3