우리는 세 개의 인수를 취하는 JavaScript 함수를 작성해야 합니다. 첫 번째는 문자열(예:str)이고 두 개의 숫자(예:m 및 n)입니다. 숫자 m과 n은 기본적으로 각각 leftShifts와 rightShifts의 양을 지정합니다.
우리는 이러한 용어를 다음과 같이 정의합니다 -
왼쪽 시프트 - 첫 번째 문자가 마지막 문자가 되고 다른 모든 문자가 왼쪽으로 한 인덱스 이동하는 문자열의 단일 원형 회전.
예를 들어 abcde는 한 번 왼쪽으로 시프트하면 bcdea가 되고 두 번 왼쪽으로 시프트하면 cdeab가 됩니다.
오른쪽 시프트 − 마지막 문자가 첫 번째 문자가 되고 다른 모든 문자가 오른쪽으로 이동하는 문자열의 단일 원형 회전.
예를 들어 abcde는 오른쪽으로 한 번 이동하면 eabcd가 되고 두 번 오른쪽으로 이동하면 deabc가 됩니다.
따라서 기본적으로 함수는 지정된 수의 왼쪽 및 오른쪽 시프트를 수행한 다음 최종적으로 결과 문자열을 반환해야 합니다.
예시
이에 대한 코드는 -
const str = 'abcdef'; const getShiftedString = (str, leftShifts, rightShifts) => shiftByAmount(shiftByAmount(str, leftShifts), −rightShifts); // helper function // negative amount shifts to right // positive amount shifts to left const shiftByAmount = (str, leftShifts) => { leftShifts = leftShifts % str.length; return str.slice(leftShifts) + str.slice(0, leftShifts); }; console.log(getShiftedString(str, 3, 2));
출력
콘솔의 출력은 -
Bcdefa