문제
문자열 str과 숫자 n을 받는 JavaScript 함수를 작성해야 합니다. 함수는 n을 사용하여 주어진 문자열 str을 변경해야 합니다.
n의 각 비트는 s −
의 각 알파벳 문자에 대해 대소문자를 바꿀지 여부를 지정합니다.비트가 1이면 대소문자를 바꿉니다. 0이면 그대로 두십시오. n의 마지막 비트가 끝나면 첫 번째 비트부터 다시 시작합니다.
마지막으로 이렇게 형성된 새 문자열을 반환해야 합니다.
예시
다음은 코드입니다 -
const str = 'hey there'; const num = 21; const swapCase = (str = '', num = 1) => { const alphaLength = str .split('') .reduce((acc, val) => val.toLowerCase() !== val.toUpperCase() ? ++acc : acc, 0); let binary = num.toString(2); while(binary.length < alphaLength){ binary += binary; }; let res = ''; for(let i = 0; i < str.length; i++){ const el = str[i]; if(el.toUpperCase() !== el.toLowerCase() && +binary[i] === 1){ if(el.toLowerCase() === el){ res += el.toUpperCase(); }else{ res += el.toLowerCase(); } }else{ res += el; }; }; return res; }; console.log(swapCase(str, num));
출력
다음은 콘솔 출력입니다 -
HeY TheRe