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

การหาจำนวนครั้งติดต่อกันมากที่สุดของตัวอักษรในสตริงใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงเป็นอาร์กิวเมนต์แรก และตัวอักษรเดี่ยวเป็นอาร์กิวเมนต์ที่สอง ฟังก์ชันควรนับและคืนค่าจำนวนครั้งติดต่อกันมากที่สุดของตัวอักษรนั้นในสตริง

ตัวอย่าง

โค้ดตัวอย่างด้านล่าง:

const str = 'abcdaaadse';
const char = 'a';
const countChars = (str = '', char = '') => {
  const arr = str.split('');
  let c = 0, max = 0;
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === char) {
      c += 1;
      if (c > max) {
        max = c;
      }
    } else {
      if (c > max) {
        max = c;
      }
      c = 0;
    }
  }
  return max;
};
console.log(countChars(str, char));

ผลลัพธ์

3

คำอธิบายเพิ่มเติม

จาก 'abcdaaadse' ตัว 'a' ติดกันมากสุดคือ 'aaa' (ตำแหน่ง 5-7) ยาว 3 โค้ดนับ consecutive streak แบบคลาสสิก ใช้ตัวแปร current และ max