Câu hỏi phỏng vấn Software Engineer (Software Engineer)

135 Các câu hỏi phỏng vấn Software Engineer (Software Engineer) được chia sẻ bởi các ứng viên

Câu hỏi phỏng vấn

Software Engineer (Software Engineer) được hỏi... 19/10/2023

- Hình ảnh của bạn sau 2 năm làm việc ở công ty này như thế nào?

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Bạn mong đợi điều gì ở bản thân trong 5 năm tới?

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Bạn có biết về Agile và Scrum không?

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Bạn nhận được một luồng bit (0 và 1). Liên tục nhận một luồng bit, mỗi lần bạn phải xác định xem giá trị hiện tại có chia hết cho 3 và in ra True hay False Ví dụ: Thứ 1: 1 -> 1 -> Sai (1) Thứ 2: 1 -> 11 -> Đúng (3) Thứ 3: 0 -> 110 -> Đúng (6) Thứ 4: 1 -> 1101 -> Sai (7) ...

1 câu trả lời

Để tính số tiếp theo trong chuỗi, trước tiên chúng ta cần thực hiện dịch chuyển trái của dòng bit hiện tại. Điều đó tương đương với việc nhân số hiện tại với 2. Sau đó, chúng ta thêm 1 nếu bit đến là 1, nếu không là 0. Ví dụ: nếu luồng hiện tại của chúng tôi là 11 (3), thì chuỗi tiếp theo là 110 (2 * 3 = 6) hoặc 111 (2 * 3 + 1 = 7). Lấy số tiếp theo mod 3 mang lại câu trả lời của chúng tôi.

Là một giải pháp thay thế, giả sử khả năng chia hết của dòng bit hiện tại của chúng tôi là Đúng. Điều đó có nghĩa là số đó có thể được biểu diễn dưới dạng 3n. Nếu bit tiếp theo là 1 thì số tiếp theo được biểu thị là 6n + 1 và do đó không chia hết. Mặt khác, giả sử điều kiện hiện tại của chúng ta là Sai. Khi đó chúng ta có 3n + 1 hoặc 3n + 2. Giả sử vế trước. Nếu bit tiếp theo là 1 thì chúng ta có 2(3n + 1) + 1 = 6n + 3 = 3(2n + 1) và do đó chia hết, và không chia hết được. Bây giờ giả sử vế sau. Không có cách nào bit tiếp theo sẽ là bội số của 3. Nếu bit tiếp theo là 1 thì 2(3n + 2) + 1 = 6n + 5 = 3(2n + 1) + 2 và nếu bit tiếp theo là 0 thì 2(3n + 2) = 6n + 5 = 3(2n + 1) + 1. Cuối cùng, tất cả những gì chúng ta cần theo dõi là phần dư; nếu phần còn lại của chúng ta là 0 thì bit tiếp theo phải là 0 để giữ nguyên tính chia hết. Nếu số dư của chúng ta là 1 và bit tiếp theo là 1 thì tính chia hết được giữ nguyên. Và nếu số dư của chúng ta là 2 thì không có lựa chọn nào thay đổi điều kiện. Sau mỗi bit, chúng ta chỉ cần cập nhật phần còn lại như hình trên. Cả hai phương pháp đều có thể chạy trong thời gian không đổi (trong phương pháp đầu tiên, bạn không cần chuyển đổi từ nhị phân sang thập phân nếu bạn theo dõi số hiện tại). Nếu bit tiếp theo là 1 thì 2(3n + 2) + 1 = 6n + 5 = 3(2n + 1) + 2 và nếu bit tiếp theo là 0 thì 2(3n + 2) = 6n + 5 = 3(2n + 1) + 1. Cuối cùng, tất cả những gì chúng ta cần theo dõi là phần dư; nếu phần còn lại của chúng ta là 0 thì bit tiếp theo phải là 0 để giữ nguyên tính chia hết. Nếu số dư của chúng ta là 1 và bit tiếp theo là 1 thì tính chia hết được giữ nguyên. Và nếu số dư của chúng ta là 2 thì không có lựa chọn nào thay đổi điều kiện. Sau mỗi bit, chúng ta chỉ cần cập nhật phần còn lại như hình trên. Cả hai phương pháp đều có thể chạy trong thời gian không đổi (trong phương pháp đầu tiên, bạn không cần chuyển đổi từ nhị phân sang thập phân nếu bạn theo dõi số hiện tại). Nếu bit tiếp theo là 1 thì 2(3n + 2) + 1 = 6n + 5 = 3(2n + 1) + 2 và nếu bit tiếp theo là 0 thì 2(3n + 2) = 6n + 5 = 3(2n + 1) + 1. Cuối cùng, tất cả những gì chúng ta cần theo dõi là phần dư; nếu phần còn lại của chúng ta là 0 thì bit tiếp theo phải là 0 để giữ nguyên tính chia hết. Nếu số dư của chúng ta là 1 và bit tiếp theo là 1 thì tính chia hết được giữ nguyên. Và nếu số dư của chúng ta là 2 thì không có lựa chọn nào thay đổi điều kiện. Sau mỗi bit, chúng ta chỉ cần cập nhật phần còn lại như hình trên. Cả hai phương pháp đều có thể chạy trong thời gian không đổi (trong phương pháp đầu tiên, bạn không cần chuyển đổi từ nhị phân sang thập phân nếu bạn theo dõi số hiện tại). ất cả những gì chúng ta cần theo dõi là phần còn lại; nếu phần còn lại của chúng ta là 0 thì bit tiếp theo phải là 0 để giữ nguyên tính chia hết. Nếu số dư của chúng ta là 1 và bit tiếp theo là 1 thì tính chia hết được giữ nguyên. Và nếu số dư của chúng ta là 2 thì không có lựa chọn nào thay đổi điều kiện. Sau mỗi bit, chúng ta chỉ cần cập nhật phần còn lại như hình trên. Cả hai phương pháp đều có thể chạy trong thời gian không đổi (trong phương pháp đầu tiên, bạn không cần chuyển đổi từ nhị phân sang thập phân nếu bạn theo dõi số hiện tại). tất cả những gì chúng ta cần theo dõi là phần còn lại; nếu phần còn lại của chúng ta là 0 thì bit tiếp theo phải là 0 để giữ nguyên tính chia hết. Nếu số dư của chúng ta là 1 và bit tiếp theo là 1 thì tính chia hết được giữ nguyên. Và nếu số dư của chúng ta là 2 thì không có lựa chọn nào thay đổi điều kiện. Sau mỗi bit, chúng ta chỉ cần cập nhật phần còn lại như hình trên. Cả hai phương pháp đều có thể chạy trong thời gian không đổi (trong phương pháp đầu tiên, bạn không cần chuyển đổi từ nhị phân sang thập phân nếu bạn theo dõi số hiện tại).

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Chủ yếu là về leetcode cho cuộc phỏng vấn viết mã. Thiết kế cơ sở dữ liệu cho cuộc phỏng vấn thiết kế kỹ thuật.

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Đánh giá mã hóa Đánh giá kỹ thuật

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Tại sao họ phát triển Python3? Tại sao không tiếp tục sử dụng Python2?

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Các câu hỏi liên quan đến những gì bạn đã làm trong các dự án trước đây và các câu hỏi kỹ thuật liên quan đến công việc hiện tại.

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Chủ đề và đa luồng trong Java là gì? Bạn có biết dịch vụ web không? Giải thích điều đó. Các lớp trừu tượng và giao diện là gì? Phân biệt nó

1 câu trả lời

Bằng kinh nghiệm của chính tôi

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Tại sao là bạn chứ không phải người khác?

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Tôi được yêu cầu viết chương trình in một số trong ma trận.

Software Engineer (Software Engineer) được hỏi... 19/10/2023

+ Sắp xếp bên ngoài

+ Danh sách liên kết

+ C++

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Chỉ một số câu hỏi ngẫu nhiên (mức độ trung bình) từ các câu hỏi phỏng vấn hàng đầu trên Leetcode

1 câu trả lời

Tôi đã làm ổn.

Software Engineer (Software Engineer) được hỏi... 19/10/2023

OOP, SOLID, DRY, cách đặt tên API

Software Engineer (Software Engineer) được hỏi... 19/10/2023

1. [Medium] Câu hỏi về thuật toán

2. [Medium] Câu hỏi về C++

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Tổng hợp các câu hỏi phỏng vấn của Google và Yandex, kết hợp với một số bài kiểm tra thuật toán Leetcode.

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Không có, các câu hỏi về thuật toán Java khá phổ biến

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Kể tên 3 loại đám mây công cộng.

1 câu trả lời

Cơ sở hạ tầng dưới dạng dịch vụ, Phần mềm dưới dạng dịch vụ, Nền tảng dưới dạng dịch vụ.

 
Software Engineer (Software Engineer) được hỏi... 19/10/2023

Hệ thống trước đây của bạn là gì? Mô tả nó và tất cả các thành phần của nó.

Software Engineer (Software Engineer) được hỏi... 19/10/2023

Các câu hỏi về các chủ đề như cơ sở dữ liệu, thực hành công nghệ phần mềm, hệ điều hành, lõi Java, khái niệm lập trình, thuật toán và cấu trúc dữ liệu

Đang xem 21 - 40 trong 135 câu hỏi phỏng vấn
Nhắn tin Zalo