인터뷰 Q 디코딩 - # 2

면접 때 받았던 실제 챌린지를 여러분과 공유하고 싶었어요!

면접관이 말했습니다. "좋아, 문자열 반전을 좀 해보자!"

나는 이 정확한 얼굴로 대답했습니다.


Q: 문자열을 단일 인수로 받아들이고 호출되면 문자열을 뒤집는 함수를 작성하십시오.



제한:
  • .reverse() 또는 .reduce()를 사용할 수 없습니다!

  • 엣지 케이스:
  • 구두점이 중요하지 않음
  • 숫자는 무시하고 문자열만 확인합니다
  • .

    주어진 인수:

    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 주세요! 저는 항상 도전할 준비가 되어 있습니다!

    좋은 웹페이지 즐겨찾기