Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chuỗi thần kỳ (Magical String) trong JavaScript


Vấn đề

Chuỗi thần kỳ str chỉ chứa '1' và '2' và tuân theo quy tắc: nối số lần xuất hiện liên tiếp của '1' và '2' tạo ra chính chuỗi đó.

Vài phần tử đầu:

str = "1221121221221121122..."

Nhóm các '1' và '2' liên tiếp:

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

Số lần xuất hiện:

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

Dãy số lần xuất hiện chính là chuỗi gốc.

Cho số nguyên num, trả về số lượng '1' trong num ký tự đầu của chuỗi thần kỳ.

Ví dụ:

const num = 6;

Kết quả:

const output = 3;

Giải thích:

6 ký tự đầu: "12211" chứa ba '1'.

Ví dụ

Mã thực hiện:

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));

Kết quả

Kết quả in ra console:

3