문제
문자열을 유일한 인수로 취하는 JavaScript 함수를 작성해야 합니다. 우리 함수는 문자열 str의 부분 문자열을 가져와서 부분 문자열의 여러 복사본을 함께 추가하여 구성할 수 있는지 확인해야 합니다.
예를 들어, 함수에 대한 입력이 -
인 경우const str = 'thisthisthisthis';
그러면 출력은 다음과 같아야 합니다. -
const output = true;
출력 설명:
'this' 문자열을 반복해서 붙여서 만든 문자열이기 때문입니다.
예시
이에 대한 코드는 -
const str = 'thisthisthisthis'; const repeatedSubstring = (str = '') => { const {length} = str; const checkSubString = ss => { const m = ss.length; for (let i = 0; i < length; i += m) for (let j = 0; j < m; j++) if (str[i+j] !== ss[j]) return false; return true; }; let factor = 2, len; while (length/factor >= 1){ while (length % factor) factor++; len = length/factor; if (checkSubString(str.substring(0,len))){ return true; }; factor++; }; return false; }; console.log(repeatedSubstring(str));
코드 설명:
먼저 부분 문자열 패턴 검사 기능을 설정합니다.
그런 다음 문자열 str을 균등하게 나누는 모든 가능한 요소를 반복하여 실행 가능한 반복 패턴이 발견되었는지 확인했습니다.
출력
콘솔의 출력은 -
true