Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chuỗi dài nhất chỉ chứa 2 ký tự khác nhau trong JavaScript

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