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

Magical String: นับจำนวน 1 ใน n ตัวแรก (JavaScript)

Magical String

สตริงที่ประกอบด้วย '1' และ '2' ซึ่งจำนวนตัวอักษรติดกันของแต่ละกลุ่มจะสร้างสตริงเดิมขึ้นมา

str = "1221121221221121122..."

กลุ่ม: 1, 22, 11, 2, 1, 22, 1, 22, 11, 2, 11, 22...

จำนวน: 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2... (เหมือน str เอง)

ปัญหา

รับ num นับจำนวน '1' ใน num ตัวแรกของ Magical String

ตัวอย่าง

const num = 6;

6 ตัวแรก: "12211" มี '1' สามตัว → 3

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

const num = 6; 
const magicalString = (num = 1) => { 
  let ind = 12; 
  let str = '1221121221221121122'; 
  while(str.length < num){ 
    const end = str.substring(str.length - 1) === '2' ? '1' : '2'; 
    str = parseInt(str.substring(ind, ind + 1)) === 2 ? str + end + end : str + end; 
    ind++; 
  } 
  return (str.substring(0, num).match(/1/g)||[]).length; 
}; 
console.log(magicalString(num));

ผลลัพธ์

3