>  기사  >  웹 프론트엔드  >  매직 스트링: JavaScript의 문제

매직 스트링: JavaScript의 문제

王林
王林앞으로
2023-09-08 12:17:05980검색

神奇的字符串:JavaScript 中的问题

Question

마법의 문자열 str은 '1'과 '2'로만 구성되며 다음 규칙을 따릅니다.

문자열 str은 숫자 '1'과 '2'를 연결하기 때문에 마술적입니다. 발생하면 문자열 str 자체가 생성됩니다.

문자열 str의 처음 몇 가지 요소는 다음과 같습니다. -

str = "1221121221221121122……"

str에서 연속된 '1'과 '2'를 그룹화하면 다음과 같습니다.-

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 ......

위의 발생 순서가 문자열 자체임을 알 수 있습니다.

입력으로 정수 num이 주어지고 문자열의 첫 번째 num에 있는 '1'의 수를 반환해야 합니다. 마법의 문자열 str.

예를 들어, 함수의 입력이 -

const num = 6;

인 경우 출력은 -

const output = 3;

이어야 합니다. 출력 설명:

마법 문자열 S의 처음 6개 요소는 "12211"이며, 이는 3개의 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) === &#39;2&#39; ? &#39;1&#39; : &#39;2&#39;;
      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));

Output

콘솔의 출력은 -

3
입니다.

위 내용은 매직 스트링: JavaScript의 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제