เราจำเป็นต้องเขียนฟังก์ชัน 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