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

JavaScript에서 한 문자열을 반복하여 다른 문자열을 만들 수 있습니까?

<시간/>

문제

첫 번째와 두 번째 인수로 str1과 str2라는 두 개의 문자열을 받는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 문자열 str2가 그것의 부분 문자열이 되도록 문자열 str1을 반복해야 하는 최소 횟수를 반환해야 합니다. str2를 반복한 후 부분 문자열이 되는 것이 불가능하면 -1을 반환해야 합니다.

예를 들어, 함수에 대한 입력이

인 경우

입력

const str1 = 'wxyz';
const str2 = 'yzwxyzwx';

출력

const output = 3;

출력 설명

"abcdabcdabcd"를 세 번 반복하면 b가 그것의 부분 문자열이기 때문에 3을 반환합니다.

예시

다음은 코드입니다 -

const str1 = 'wxyz';
const str2 = 'yzwxyzwx';
const countRepeat = (str1 = '', str2) => {
   let i = 1
   let current = str1
   while (true) {
      if (current.indexOf(str2) >= 0) {
         return i
      }
      if ((current.length > str2.length * 2) &amp;&amp; i > 2) {
         return -1
      }
      current += str1
      i += 1
   }
}
console.log(countRepeat(str1, str2));

출력

3