Computer >> Máy Tính >  >> Lập trình >> Javascript

Chuỗi dài nhất có hai ký tự riêng biệt trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một chuỗi làm đối số đầu tiên và một số (nhỏ hơn độ dài của chuỗi) làm đối số thứ hai. Hàm sẽ xóa các ký tự khỏi chuỗi ban đầu và chuẩn bị một chuỗi mới sao cho đó là chuỗi dài nhất chứa nhiều nhất hai ký tự riêng biệt.

Sau đó, cuối cùng hàm sẽ trả về độ dài của chuỗi mong muốn đó.

Ví dụ:Nếu chuỗi đầu vào là -

const str = 'kjeljsdl';

Sau đó, đầu ra phải là -

const output = 4;

vì chuỗi con dài nhất có nhiều nhất 2 ký tự riêng biệt là 'jljl'

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

4