인터뷰 Q 디코딩 - # 2
면접관이 말했습니다. "좋아, 문자열 반전을 좀 해보자!"
나는 이 정확한 얼굴로 대답했습니다.
Q: 문자열을 단일 인수로 받아들이고 호출되면 문자열을 뒤집는 함수를 작성하십시오.
제한:
엣지 케이스:
주어진 인수:
const string="Reverse me!";
설정:
function revFunction(str){
};
면접관에게 .split()을 사용할 수 있는지 물었고 그는 "물론이죠."라고 말했습니다.
유용한 팁: 항상 질문하세요!!
function revFunction(str){
const splitString = str.split('');
};
.split() 이 하는 일은 각 문자를 개별 인덱스로 분리하여 배열로 만드는 것입니다. 나중에 호출할 수 있도록 const 변수 splitString으로 설정했습니다.
다음으로 이 새로운 배열을 반복할 생각으로 고전적인 for-loop를 활용했습니다.
function revFunction(str){
const splitString = str.split('');
for(let i = 0; i <= str.length; i++){}
};
이제 str을 반복할 때 무엇을 해야 합니까? 예, 개별적으로 검토해야 하지만 다른 방식으로 반복해야 합니다. pop이 배열의 마지막 항목을 제거하기 때문에 .pop()을 사용할 수 있는지 물었습니다. 그는 나에게 진행을 주었다.
function revFunction(str){
const splitString = str.split('');
for(let i = 0; i <= str.length; i++){
// --------
splitString.pop();
// --------
}
};
하지만 마지막 편지가 필요합니다! 우리는 그것을 심연으로 보낼 수 없습니다! 팝된 항목을 유지하는 내 솔루션은 .push()를 새로운 빈 배열로 만드는 것입니다.
function revFunction(str){
const splitString = str.split('');
// --------
const reversedString = [];
// --------
for(let i = 0; i <= str.length; i++){
// --------
reversedString.push(splitString.pop());
// --------
}
};
이 시점에서 revFunction을 console.log하면 배열로 반환됩니다.
// [!,e,m, ,e,s,r,e,v,e,R]
성공!
그러나 면접관은 함수가 견고한 문자열을 반환하기를 원했습니다. 나는 .join()을 사용할 수 있는지 물었다. 그는 승인했습니다.
function revFunction(str){
const splitString = str.split('');
const reversedString = [];
for(let i = 0; i <= str.length; i++){
reversedString.push(splitString.pop());
}
// ---- //
return reversedString.join('');
// ---- //
};
다음을 반환해야 합니다.
//!em esreveR
우리는 해냈다! .reverse() 메서드 없이 문자열을 뒤집는 방법에는 여러 가지가 있습니다. 내가 다룬 것은 반복 방식(for-loop로 반복)이었습니다.
댓글에서 이 문제를 (선택한 언어로) 해결하도록 도전합니다!
Repl에서 사용해 보세요!
읽어 주셔서 감사합니다!!
나를 위한 초급 수준의 인터뷰 질문이 있습니까? DM 주세요! 저는 항상 도전할 준비가 되어 있습니다!
Reference
이 문제에 관하여(인터뷰 Q 디코딩 - # 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cat/interview-qs-decoded-2-5eao텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)