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

สตริงที่ยาวที่สุดที่มีอักขระต่างกันสองตัวใน JavaScript


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