Sử dụng Python trong cuộc phỏng vấn của Google có ổn không?

Ngày nay, các cuộc phỏng vấn của Google đang thịnh hành. Nhưng đôi khi, các cuộc phỏng vấn có thể mang lại điều tốt nhất cho chúng ta. Đặc biệt nếu nó dành cho một vị trí mà chúng ta thực sự muốn

Tôi đã rất vui khi được phỏng vấn tại nhiều công ty hàng đầu khi còn là sinh viên và tìm được việc làm ở Thung lũng Silicon với tư cách là Kỹ sư phần mềm

Mục tiêu của tôi là giúp bạn có được công việc mơ ước mà bạn hằng mong muốn

Chúng ta sẽ xem xét một câu hỏi cổ điển có thể xuất hiện trong Cuộc phỏng vấn Google tiếp theo của bạn

Cảnh báo. nếu bạn là một người viết mã kỳ cựu, có thể bạn đã biết cách giải câu hỏi này

Nếu bạn đang cố gắng để có được một vị trí Thực tập hoặc một công việc Toàn thời gian vào năm tới, thì bài viết này chắc chắn sẽ giúp ích cho bạn. ???

CÂU HỎI. Đưa ra một chuỗi làm đầu vào của bạn, xóa bất kỳ ký tự lặp lại nào và trả về chuỗi mới

Nếu bạn muốn một video để giải thích câu hỏi, tôi đã tạo một video ở đây

Như chúng ta có thể thấy từ ví dụ trên, đầu ra là “abc” vì chúng ta xóa chữ 'a', 'b' và 'c' thứ hai

Trước tiên, hãy thiết lập chức năng của chúng ta trong Python 2. 7

def deleteReoccurringCharacters[string]:

Để giải quyết câu hỏi này, chúng tôi sẽ sử dụng một cấu trúc dữ liệu cụ thể được gọi là HashSet

Một bộ

Bạn có thể coi một tập hợp tương tự như một mảng, với hai ngoại lệ chính

  1. Nó hoàn toàn không có thứ tự
  2. Nó không thể chứa các bản sao

Vì nó không có thứ tự nên chúng ta cũng cần một chuỗi trống để lưu trữ các ký tự mà chúng ta đã thêm vào tập hợp theo thứ tự. Đây sẽ là chuỗi chúng tôi trả về

Hãy thiết lập cả hai điều đó

def deleteReoccurringCharacters[string]:    seenCharacters = set[]    outputString = ''

Bây giờ chúng tôi đã thiết lập cấu trúc dữ liệu mà chúng tôi cần, hãy nói về thuật toán của chúng tôi

Do cách một tập hợp hoạt động trong bộ nhớ nên nó có độ phức tạp về thời gian tra cứu là 0[1]

Điều này có nghĩa là chúng ta có thể sử dụng nó để kiểm tra xem chúng ta đã đến thăm một nhân vật hay chưa

thuật toán của chúng tôi

Lặp qua tất cả các ký tự trong chuỗi ban đầu và thực hiện như sau

Bước 1. Kiểm tra xem nhân vật đã có trong bộ của chúng tôi chưa
Bước 2. Nếu nó không có trong bộ, hãy thêm nó vào bộ và nối nó vào chuỗi

Hãy xem nó trông như thế nào trong mã ???

for char in string:    if char not in seenCharacters:        seenCharacters.add[char]        outputString += char

Chúng tôi không phải lo lắng về trường hợp "khác", bởi vì chúng tôi không làm bất cứ điều gì với chính ký tự tái diễn

Bây giờ tất cả những gì còn lại phải làm là trả lại outputString

Đây là mã hoàn thành trông như thế nào

def deleteReoccurringCharacters[string]:    seenCharacters = set[]    outputString = ''    for char in string:        if char not in seenCharacters:            seenCharacters.add[char]            outputString += char    return outputString

Và bạn có nó rồi đấy

Bây giờ, nếu đây là một cuộc phỏng vấn, nhà tuyển dụng của bạn sẽ hỏi bạn về sự phức tạp về thời gian và không gian

Hãy làm một phân tích nhỏ

Thời gian phức tạp

Lặp qua toàn bộ chuỗi đầu vào có độ phức tạp về thời gian là O[n], vì có n ký tự trong chính chuỗi đó

Đối với mỗi ký tự đó, chúng tôi phải kiểm tra xem chúng tôi đã nhìn thấy hay chưa… Tuy nhiên, vì HashSet có thời gian tra cứu là O[1], nên độ phức tạp về thời gian của chúng tôi không bị ảnh hưởng

Để lại cho chúng tôi độ phức tạp thời gian cuối cùng của O[n]

Độ phức tạp không gian

Trường hợp xấu nhất, chúng tôi nhận được một chuỗi có tất cả các ký tự duy nhất. Ví dụ: “abcdef”

Trong trường hợp đó, chúng tôi sẽ lưu trữ tất cả n phần tử trong chuỗi và tập hợp của chúng tôi

Tuy nhiên, chúng tôi cũng bị giới hạn về kích thước của bảng chữ cái tiếng anh

Đây là cơ hội tốt để hỏi người phỏng vấn của chúng tôi loại ký tự nào được tính là duy nhất trong chuỗi [chữ hoa/chữ thường/số/ký hiệu]

Giả sử rằng chuỗi ban đầu sẽ chứa các chữ cái viết thường trong bảng chữ cái, vì bảng chữ cái là hữu hạn, nên chuỗi đầu ra và tập hợp của chúng ta không bao giờ được lớn hơn 26 ký tự

Để lại cho chúng tôi độ phức tạp không gian trong trường hợp xấu nhất là O[1]

Bây giờ bạn đã biết cách giải câu hỏi phỏng vấn của Google

Câu hỏi này có thể xuất hiện trong giai đoạn đầu của cuộc phỏng vấn do tính thẳng thắn của nó… Giống như bài kiểm tra trực tuyến hoặc cuộc gọi điện thoại đầu tiên

Nếu bạn là người học trực quan như tôi, hãy xem video này, tôi đã giải thích thêm về giải pháp. Tôi tạo một video hướng dẫn mới hàng ngày xoay quanh việc bắt đầu sự nghiệp của bạn trong phần mềm

Tôi cũng đã đăng mã đã hoàn thành trên Github tại đây

Cảm ơn đã xem, chúc may mắn

#33

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Nếu bài viết này hữu ích, hãy tweet nó

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Python có đủ để kiếm việc làm ở Google không?

Các ngôn ngữ lập trình như Python và Swift phù hợp với những nhu cầu như vậy thay vì Java . Vì vậy, nếu bạn muốn có một công việc trong các công ty khởi nghiệp và cuối cùng là các công ty sản phẩm lớn như Google và Facebook, hãy học các ngôn ngữ như Python, Ruby và Swift.

Ngôn ngữ lập trình nào là tốt nhất cho cuộc phỏng vấn của Google?

Python, C++, Go và Java là những ngôn ngữ lập trình hàng đầu được sử dụng nội bộ tại Google. Là một gã khổng lồ công nghệ, công ty cho phép các lập trình viên khám phá bất kỳ ngôn ngữ lập trình nào họ thích.

Tôi có thể sử dụng Python cho các cuộc phỏng vấn FAANG không?

Tôi có thể xin việc tại FAANG với Python không? . Bạn không thể xuất hiện và nói “Tôi có thể làm Python. Thuê tôi. ”Yes, but that also presupposes that you get past the interviews [there will be multiple and they will last many hours and they will be grueling]. You can't just show up and say “I can do Python! Employ me!”

Tôi có thể viết mã bằng Python trong cuộc phỏng vấn không?

Một số nhân viên của Google đề xuất sử dụng C++/Java, nhưng quyết định nhất trí là. chọn ngôn ngữ mà bạn cảm thấy thoải mái nhất, trừ khi mô tả công việc có yêu cầu. Huấn luyện viên phỏng vấn chính thức từ Google đảm bảo rằng Python vẫn ổn và thường giúp truyền đạt những hiểu biết cơ bản nhanh hơn trong cuộc phỏng vấn .

Chủ Đề