Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 문자열을 디코딩하는 함수

<시간/>

인코딩된 문자열이 주어지며 디코딩된 문자열을 반환하는 함수를 통해 처리해야 합니다.

인코딩 규칙은 -

n[encodedString], where the encodedString inside the square brackets is being repeated exactly n times.

그리고 n은 양의 정수로 보장됩니다.

입력 문자열이 항상 유효하다고 가정할 수 있습니다. 여백이 없고, 대괄호가 잘 구성되어 있습니다.

예를 들어 - 입력이 -

인 경우
const str = "3[a]2[bc]";

그러면 출력은 다음과 같아야 합니다. -

const output: "aaabcbc";

예시

이에 대한 코드는 -

const str = "3[a]2[bc]";
const helper = (str = '') => {
   return str.replace(/(\d+\[\w+\])/gi, item => {
      let match = /(\d+)\[(\w+)\]/.exec(item);
      let repeat = parseInt(match[1]);
      let pattern = match[2];
      let result = "";
      while(repeat−− > 0) {
         result += pattern;
      }
      return result;
   });
};
const decodeString = function(str) {
   while(/\d+\[\w+\]/gi.test(str)) {
      str = helper(str);
   }
   return str;
};
console.log(decodeString(str));

출력

콘솔의 출력은 -

aaabcbc