Viết hàm nhận chuỗi, xóa ký tự để tạo chuỗi con dài nhất chỉ chứa tối đa 2 ký tự khác nhau. Trả về độ dài chuỗi đó.
Ví dụ: 'kjeljsdl' → 4 (substring 'jljl').
Ví dụ
const str = 'kjeljsdl';
const longestSubstring = (str = '') => {
const { length } = str;
if (length <= 1) return 0;
const keys = [...new Set(str)];
const arr = [];
let max = 0;
for (let i = 0; i < keys.length - 1; i++)
for (let j = i + 1; j < keys.length; j++)
arr.push(keys[i] + keys[j]);
arr.forEach(item => {
let sub = '';
for (let i = 0; i < str.length; i++) {
if (sub[sub.length - 1] === str[i]) { sub = ''; break; }
if (item.includes(str[i])) sub += str[i];
}
if (sub && sub.length > max) max = sub.length;
});
return max;
};
console.log(longestSubstring(str));
Kết quả
4