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

Magical String:คำถามใน JavaScript


ปัญหา

str สตริงเวทย์มนตร์ประกอบด้วย '1' และ '2' เท่านั้น และปฏิบัติตามกฎต่อไปนี้ -

สตริง str นั้นวิเศษมากเพราะการเชื่อมจำนวนของอักขระ '1' และ '2' ที่ต่อเนื่องกันทำให้เกิดสตริง str เอง

องค์ประกอบสองสามตัวแรกของสตริง str มีดังต่อไปนี้ -

str = "1221121221221121122……"

หากเราจัดกลุ่ม '1' และ '2' ที่ต่อเนื่องกันเป็น str มันจะเป็น -

1 22 11 2 1 22 1 22 11 2 11 22 ......

และการเกิดของ '1 หรือ '2' ในแต่ละกลุ่มคือ -

1 2 2 1 1 2 1 2 2 1 2 2 ......

เราจะเห็นได้ว่าลำดับเหตุการณ์ข้างต้นเป็นสตริงนั่นเอง

เราได้รับตัวเลขจำนวนเต็มเป็นอินพุต และเราจำเป็นต้องคืนค่าจำนวน '1' ในตัวเลข num แรกในสตริงเวทย์มนตร์ str

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −

const num = 6;

จากนั้นผลลัพธ์ควรเป็น −

const output = 3;

คำอธิบายผลลัพธ์:

6 องค์ประกอบแรกของสายเวทมนตร์ S คือ "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