Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาสตริงย่อยที่ยาวที่สุดระหว่างอักขระสองตัวที่เหมือนกัน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริง ฟังก์ชันควรค้นหาและส่งกลับความยาวของสตริงย่อยที่ยาวที่สุดที่คั่นระหว่างตัวอักษรสองตัวเดียวกัน

ตัวอย่างเช่น −

หากสตริงอินพุตเป็น −

const str = 'avbghvh';

จากนั้นผลลัพธ์ควรเป็น −

const output = 3;

เพราะสตริงย่อยที่ยาวที่สุดที่ต้องการคือ 'bgh' ระหว่างสอง v's

ตัวอย่าง

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

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

3