Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

สับสตริงที่ยาวที่สุดระหว่างตัวอักษรเดียวกันสองตัวใน JavaScript

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