Google에서 묻는 코딩 인터뷰 질문

안녕 모두들! 지난 주 문제를 해결하는 데 도움이 되었기를 바랍니다. 못 보신 분들을 위해 지난주 기사를 링크해 놓을게요.

The challenge on Coderbyte

다음은 지난 주 문제를 해결하는 인기 있는 방법입니다.

두 가지 인덱스 접근 방식:



보다 최적화된 솔루션(숫자 문자열이 정렬되기 때문에 가능한 솔루션)에는 두 문자열의 시작 부분에서 두 개의 인덱스를 초기화하는 것이 포함됩니다. 첫 번째 문자열의 인덱스에 있는 요소가 두 번째 문자열의 인덱스에 있는 요소와 같은지, 작은지 또는 큰지 확인하십시오. 값이 같으면 결과 배열에 값을 푸시합니다. 문자열이 정렬되기 때문에 첫 번째 문자열의 요소가 두 번째 문자열의 요소보다 작으면 첫 번째 요소가 두 번째 문자열에 존재하지 않는다는 것을 확인할 수 있습니다. 따라서 첫 번째 인덱스를 증가시켜 다음 값을 볼 수 있습니다. 첫 번째 문자열의 요소가 두 번째 문자열의 요소보다 크면 두 번째 문자열의 값이 첫 번째 문자열에 존재하지 않고 다음 값을 보기 위해 두 번째 인덱스를 증가시킬 수 있습니다. 이것은 코드에서 더 명확하게 볼 수 있습니다!

 function intersection (arr) {
  const inBothArrays = []
  const [arr1, arr2] = arr.map((str) => str.split(', ').map((e) => parseInt(e)))

  let index1 = 0
  let index2 = 0

  while (index1 < arr1.length && index2 < arr2.length) {
    const elem1 = arr1[index1]
    const elem2 = arr2[index2]

    if (elem1 === elem2) {
      inBothArrays.push(elem1)
      index1++
      index2++
    } else if (elem1 > elem2) {
      index2++
    } else if (elem1 < elem2) {
      index1++
    }
  }

  return inBothArrays.join(',')
}

예를 들어:
intersection([“3, 4, 7, 11, 15”, “1, 3, 5, 8, 11”]);를 호출하면 함수가 “3,11”를 반환해야 합니다.

이것을 좀 더 명확하게 할 수 있는 그림이 있습니다.



이 솔루션은 배열이 정렬되어 있기 때문에 작동한다는 것을 기억하십시오. 이 솔루션의 시간 복잡도는 O(n+m) 입니다.

이번 주 도전:



이번 주에는 실제 Google 전화 화면 인터뷰에서 제공된 코딩 문제를 해결할 것입니다. 코드를 제출하려면 Coderbyte으로 이동하십시오!

각 문자열이 쉼표로 구분된 키 누름을 나타내는 두 개의 문자열을 포함하는 배열을 사용하는 함수를 작성하십시오. 이 문제의 경우 키 누름은 인쇄 가능한 문자 또는 백스페이스(-B로 표시됨)일 수 있습니다. 함수는 두 개의 키 누름 문자열이 동일한지 여부를 결정해야 합니다.

백스페이스가 선행 문자 하나를 지우도록 하여 이러한 키 누르기 문자열에서 인쇄 가능한 문자열을 생성할 수 있습니다. 동일한 인쇄 가능한 문자열을 생성하는 경우 두 개의 키 누르기 문자열을 동등하게 고려하십시오. 예를 들어:

checkEquivalentKeypresses(["a,b,c,d", "a,b,c,c,-B,d"]) // true
checkEquivalentKeypresses(["-B,-B,-B,c,c", "c,c"]) // true
checkEquivalentKeypresses(["", "a,-B,-B,a,-B,a,b,c,c,c,d"]) // false


즐기세요 그리고 당신은 이것을 얻었습니다 !!

뉴스레터 📫



우리는 큰 것을 발표할 때마다 작은 기능 공개 스니펫을 보낼 것이므로 우리 커뮤니티는 우리가 새로운 것을 발표할 때 가장 먼저 알게 됩니다. Give us your email here 그러면 "최초로 알아야 할"목록에 귀하를 추가하겠습니다. :)

좋은 웹페이지 즐겨찾기