전체 스택 개발자 역할에 대한 기술 인터뷰에서 친숙하면서도 예기치 않게 도전적인 상황에서 나 자신을 발견했습니다. 면접관이 처음에는 단순 해 보이는 작업을 제시 할 때까지 모든 것이 순조롭게 진행되었습니다.
“이 파일 이름이 파일 탐색기에 표시되는 방식으로 오름차순으로 정렬 할 수 있습니까?” 그들은 물었다.
나는“케이크 조각”이라고 생각했다. 정렬은 기본적인 작업으로 문제를 예상하지 못했습니다. 그러나 코드를 작성하기 시작하자마자 나는 걸렸다. 파일 이름은 모든 곳에 있었지만 일부는 단순했지만 다른 일부는 숫자, 문자 및 두 가지 조합을 포함했습니다.
그러나 이것은 이상한 결과를 가져 왔습니다. 숫자는 사전으로 분류되었습니다 (“10”은“1”으로 시작하기 때문에“10”이“2”보다 먼저옵니다), 혼합 영숫자 문자열은 올바른 순서가 아니 었습니다. 그것은 엉망이었고 파일 탐색기에서 볼 수있는 자연 순서와 비슷하지 않았습니다.
나는 시계가 똑딱 거리고 압력이 쌓이는 것을 느낄 수있었습니다. 나는 숫자를 올바르게 처리하기 위해 다양한 사용자 정의 비교 함수를 통해 작업하려고했지만 아무것도 클릭하는 것 같지 않았습니다.
그럼, 나는 얼마 전에 읽은 간단한 속임수를 기억했다 : localecompare.
LocalEcompare를 사용하면 인간이 사물을 분류하는 방식을 모방하는 방식으로 현을 비교할 수 있습니다. 숫자 옵션과 함께 사용하면 숫자를 텍스트로 비교하지 않고 실제 숫자로 처리합니다. 내가 사용한 코드는 다음과 같습니다.
이 단일 코드 라인은 파일 탐색기와 같은 파일 이름을 정렬했습니다. 숫자는 자연스럽게 주문되었으며 문자/번호 조합은 매끄럽게 처리되었습니다.
코드를 실행하자마자 올바른 순서가 화면에 나타나는 것을 보았습니다. 파일 이름은 파일 탐색기와 마찬가지로 오름차순 순서로 완벽하게 정렬되었습니다. 나는 문제를 해결 한 방법에 만족하는 것처럼 보이는 면접관에게 해결책을 설명하면서 미소를 지었다.
처음에 복잡한 문제처럼 느껴지는 것은 단순하고 우아한 솔루션으로 해결되었습니다. 때로는 가장 효과적인 도구가 가장 단순하다는 것을 상기시켜 주었고, 그 작은 트릭을 아는 것은 모든 차이를 만들 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3