เราต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงตัวอักษรเป็นอาร์กิวเมนต์เดียว ฟังก์ชันต้องหาสตริงที่ยาวที่สุดที่อยู่ระหว่างตัวอักษรสองตัวที่เหมือนกันและคืนค่าความยาว
ตัวอย่าง
ถ้าสตริงนำเข้าคือ:
const str = 'sadtrsewak';
ผลลัพธ์ควรเป็น:
const output = 6;
เพราะระหว่าง 'a' สองตัวมีสับสตริงที่ยาวที่สุดความยาว 6
ตัวอย่างโค้ด
const str = 'sadtrsewak';
const longestSubstringBetween = (str = '') => {
const map = {};
let res = -1;
for(let i = 0; i < str.length; i++) {
const el = str[i];
if(map.hasOwnProperty(str[i])) {
res = Math.max(res, i - map[el] - 1);
} else {
map[el] = i;
}
}
return res;
};
console.log(longestSubstringBetween(str));
ผลลัพธ์
6