เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงเป็นอาร์กิวเมนต์แรกและตัวเลข (น้อยกว่าความยาวของสตริง) เป็นอาร์กิวเมนต์ที่สอง ฟังก์ชันควรลบอักขระออกจากสตริงเดิมและเตรียมสตริงใหม่เพื่อให้เป็นสตริงที่ยาวที่สุดที่มีอักขระต่างกันไม่เกิน 2 ตัว
ในที่สุด ฟังก์ชันจะคืนค่าความยาวของสตริงที่ต้องการ
ตัวอย่างเช่น หากสตริงอินพุตคือ −
const str = 'kjeljsdl';
จากนั้นผลลัพธ์ควรเป็น −
const output = 4;
เพราะสตริงย่อยที่ยาวที่สุดที่มีอักขระต่างกันไม่เกิน 2 ตัวคือ 'jljl'
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
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));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
4