Hướng dẫn a* algorithm python - một * thuật toán python

Lập trình | Phỏng vấn | Giờ hành chính

Nội dung chính ShowShow

  • Lập trình | Phỏng vấn | Giờ hành chính
  • Trong bài viết này, tôi trình bày và chia sẻ giải pháp cho một số thuật toán cơ bản xuất hiện thường xuyên trong các cuộc phỏng vấn MAANG
  • Đề xuất các khóa học theo yêu cầu
  • Tại sao thực hành thuật toán là chìa khóa?
  • Có cả một thế giới ngoài kia
  • Chuỗi thao túng
  • 1. Số nguyên ngược
  • 2. Chiều dài từ trung bình
  • 3. Thêm chuỗi
  • 4. Nhân vật độc đáo đầu tiên
  • 5. Palindrom hợp lệ
  • 6. Mảng đơn điệu
  • 7. Di chuyển số 0
  • 8. Đổ đầy chỗ trống
  • 9. Các từ phù hợp và không khớp
  • 10. Mảng số nguyên tố
  • Sự kết luận
  • Bạn cũng có thể thích:
  • Một ghi chú cho độc giả của tôi
  • Thuật toán nào được sử dụng trong Python?
  • Ví dụ thuật toán là gì?
  • Có thuật toán trong Python không?
  • Một python * thuật toán * là gì?

Trong bài viết này, tôi trình bày và chia sẻ giải pháp cho một số thuật toán cơ bản xuất hiện thường xuyên trong các cuộc phỏng vấn MAANG

Đề xuất các khóa học theo yêu cầu

Đề xuất các khóa học theo yêu cầu

Tại sao thực hành thuật toán là chìa khóa? to nail Python coding interviews. Below I share 4 courses/platforms that I strongly recommend to keep exercising after practicing the algorithms in this post:

  • Có cả một thế giới ngoài kia→ Best For Coding Rounds Involving Algorithms!
  • Chuỗi thao túngBest platform I found to prepare Python & SQL coding interviews so far! Better and cheaper than LeetCode.
  • 1. Số nguyên ngượcLists, arrays, sets, dicts, map(), filter(), reduce(), iterable objects.
  • 2. Chiều dài từ trung bìnhHigh quality course if you are committed to pursue a career in data engineering.

3. Thêm chuỗi

Tại sao thực hành thuật toán là chìa khóa?

Có cả một thế giới ngoài kia

Chuỗi thao túng

1. Số nguyên ngược

2. Chiều dài từ trung bình

Có cả một thế giới ngoài kia

Chuỗi thao túngHackerRank,LeetCode, CodingBat and GeeksForGeeksare just few examples).

1. Số nguyên ngược

Ví dụ: LeetCode cho phép bạn lọc các câu hỏi phỏng vấn hàng đầu của các công ty cụ thể và theo tần suất. Bạn cũng có thể chọn mức độ khó (dễ dàng, trung bình và khó) mà bạn cảm thấy thoải mái với:LeetCode let you filter top interview questions by specific companies and by frequency. You can also choose the level of difficulty (Easy, Medium and Hard) you feel comfortable with:LeetCode let you filter top interview questions by specific companies and by frequency. You can also choose the level of difficulty (Easy, Medium and Hard) you feel comfortable with:

Nguồn: https://leetcode.com/problemset/all/

Có hàng trăm vấn đề thuật toán khác nhau ngoài kia, có nghĩa là việc có thể nhận ra các mẫu phổ biến và mã là một giải pháp hiệu quả trong ít hơn 10 phút sẽ đòi hỏi nhiều thời gian và sự cống hiến.

Lúc đầu, Don Don thất vọng nếu bạn thực sự đấu tranh để giải quyết chúng lúc đầu, điều này hoàn toàn bình thường

Don Tiết thất vọng nếu bạn thực sự đấu tranh để giải quyết chúng lúc đầu, điều này là hoàn toàn bình thường. Thậm chí các lập trình viên Python có kinh nghiệm hơn sẽ tìm thấy nhiều thuật toán thách thức để giải quyết trong một thời gian ngắn mà không cần đào tạo đầy đủ.

Ngoài ra, hãy thất vọng nếu cuộc phỏng vấn của bạn không diễn ra như bạn mong đợi và bạn mới bắt đầu giải quyết các thuật toán. Có những người chuẩn bị trong nhiều tháng để giải quyết một vài vấn đề mỗi ngày và thường xuyên luyện tập chúng trước khi họ có thể kết nối một cuộc phỏng vấn.

Để giúp bạn trong quá trình đào tạo của bạn, bên dưới tôi đã chọn 10 thuật toán (chủ yếu xung quanh thao tác và mảng chuỗi) mà tôi đã thấy xuất hiện nhiều lần trong các cuộc phỏng vấn mã hóa điện thoại. Mức độ của những vấn đề này chủ yếu là dễ dàng vì vậy hãy coi chúng là điểm khởi đầu tốt.String Manipulation and Arrays) that I have seen appearing again and again in phone coding interviews. The level of these problems is mainly easy so consider them as good starting point.String Manipulation and Arrays) that I have seen appearing again and again in phone coding interviews. The level of these problems is mainly easy so consider them as good starting point.

Xin lưu ý rằng giải pháp tôi đã chia sẻ cho mỗi vấn đề chỉ là một trong nhiều giải pháp tiềm năng có thể được thực hiện và thường là một BF (Brute Brute Force). Do đó, hãy thoải mái mã hóa phiên bản thuật toán của riêng bạn, cố gắng tìm sự cân bằng phù hợp giữa thời gian chạy và bộ nhớ được sử dụng.

Chuỗi thao túng

1. Số nguyên ngược

Output:
-132
543

Một thuật toán khởi động, điều đó sẽ giúp bạn thực hành các kỹ năng cắt lát của bạn. Trong thực tế, một chút khó khăn duy nhất là đảm bảo bạn đang tính đến trường hợp khi số nguyên là âm. Tôi đã thấy vấn đề này được trình bày theo nhiều cách khác nhau nhưng nó thường là điểm khởi đầu cho các yêu cầu phức tạp hơn.

2. Chiều dài từ trung bình

Output:
4.2
4.08

Các thuật toán yêu cầu bạn áp dụng một số tính toán đơn giản bằng cách sử dụng các chuỗi là rất phổ biến, do đó, điều quan trọng là phải làm quen với các phương pháp như ____1010and

Output:
4.2
4.08
1 trong trường hợp này đã giúp tôi xóa các ký tự không mong muốn và tạo một danh sách các từ, độ dài có thể dễ dàng đo được và tổng hợp.and
Output:
4.2
4.08
1that in this case helped me removing the unwanted characters and create a list of words, the length of which can be easily measured and summed.and
Output:
4.2
4.08
1that in this case helped me removing the unwanted characters and create a list of words, the length of which can be easily measured and summed.

3. Thêm chuỗi

Output:
2200
2200

Tôi thấy cả hai cách tiếp cận đều sắc nét như nhau: phương pháp đầu tiên cho sự ngắn gọn của nó và trực giác sử dụng

Output:
4.2
4.08
2Method để đánh giá động các đầu vào dựa trên chuỗi và lần thứ hai cho việc sử dụng thông minh của
Output:
4.2
4.08
3Function để xây dựng lại hai chuỗi khi các số thực tế phát ra Mã mã Unicode của các ký tự của họ. Nếu tôi thực sự phải chọn ở giữa hai người, có lẽ tôi sẽ đi theo cách tiếp cận thứ hai vì nó trông phức tạp hơn lúc đầu nhưng nó thường có ích trong việc giải quyết các thuật toán trung bình và các thuật toán cứng, yêu cầu thao tác và tính toán chuỗi nâng cao hơn.

4. Nhân vật độc đáo đầu tiên

Output:
1
2
1
###
1
2
1

Cũng trong trường hợp này, hai giải pháp tiềm năng được cung cấp và tôi đoán rằng, nếu bạn khá mới đối với các thuật toán, cách tiếp cận đầu tiên có vẻ quen thuộc hơn một chút khi nó xây dựng như một bộ đếm đơn giản bắt đầu từ một từ điển trống.

Tuy nhiên, việc hiểu cách tiếp cận thứ hai sẽ giúp bạn nhiều hơn trong dài hạn và điều này là bởi vì trong thuật toán này, tôi chỉ đơn giản là sử dụng

Output:
4.2
4.08
4Instead của việc tự mình xây dựng một bộ đếm chars và thay thế
Output:
4.2
4.08
5 bằng
Output:
4.2
4.08
6, một chức năng có thể giúp bạn xác định chỉ số thanh lịch hơn.

5. Palindrom hợp lệ

Output:
4.2
4.08
1

Vấn đề palindrom hợp lệ của người Viking là một tác phẩm kinh điển thực sự và có lẽ bạn sẽ tìm thấy nó nhiều lần dưới nhiều hương vị khác nhau. Trong trường hợp này, nhiệm vụ là kiểm tra thời tiết bằng cách loại bỏ tối đa một ký tự, chuỗi khớp với đối tác đảo ngược của nó. Khi s = ‘radkar, chức năng trả về

Output:
4.2
4.08
7As bằng cách loại trừ‘ k, chúng ta có được từ ‘radar, đó là một palindrom.s = ‘radkar’ the function returns
Output:
4.2
4.08
7as by excluding the ‘k’ we obtain the word ‘radar’ that is a palindrome.s = ‘radkar’ the function returns
Output:
4.2
4.08
7as by excluding the ‘k’ we obtain the word ‘radar’ that is a palindrome.

Mảng

6. Mảng đơn điệu

Output:
4.2
4.08
4

Đây là một vấn đề rất thường gặp và giải pháp được cung cấp ở trên là khá thanh lịch vì nó có thể được viết như một lớp lót. Một mảng là đơn điệu khi và chỉ khi nó tăng đơn điệu, hoặc đơn điệu giảm và để đánh giá nó, thuật toán ở trên sẽ tận dụng chức năng

Output:
4.2
4.08
8 trả về
Output:
4.2
4.08
9 nếu tất cả các mục trong một điều đó là đúng, nếu không nó sẽ trả về ____. Nếu đối tượng có thể trống, hàm
Output:
4.2
4.08
8 cũng trả về
Output:
4.2
4.08
9.

7. Di chuyển số 0

Output:
4.2
4.08
9

Khi bạn làm việc với các mảng, các phương pháp

Output:
2200
2200
3 và
Output:
2200
2200
4 là các đồng minh quý giá. Trong vấn đề này, tôi đã sử dụng chúng để loại bỏ từng số 0 thuộc về mảng ban đầu và sau đó nối nó ở cuối vào cùng một mảng.

8. Đổ đầy chỗ trống

Output:
4.2
4.08
2

Tôi đã được yêu cầu giải quyết vấn đề này một vài lần trong các cuộc phỏng vấn thực sự, cả hai lần giải pháp phải bao gồm các trường hợp cạnh (mà tôi đã bỏ qua ở đây để đơn giản). Trên giấy tờ, đây là một thuật toán dễ dàng để xây dựng nhưng bạn cần phải nhớ rõ những gì bạn muốn đạt được với vòng lặp và nếu câu lệnh và thoải mái làm việc với các giá trị

Output:
2200
2200
5.

9. Các từ phù hợp và không khớp

Output:
4.2
4.08
4

Vấn đề khá trực quan nhưng thuật toán tận dụng một số hoạt động tập hợp rất phổ biến như

Output:
2200
2200
6,
Output:
2200
2200
7and
Output:
2200
2200
8 đó là cực kỳ hữu ích để làm cho giải pháp của bạn thanh lịch hơn. Nếu đó là lần đầu tiên bạn gặp chúng, hãy đảm bảo kiểm tra bài viết này:

10. Mảng số nguyên tố

Output:
4.2
4.08
8

Tôi muốn đóng phần này với một vấn đề cổ điển khác. Một giải pháp có thể được tìm thấy khá dễ dàng lặp lại máng

Output:
2200
2200
9 nếu bạn quen thuộc với cả định nghĩa số nguyên tố và hoạt động mô đun.modulus operation.modulus operation.

Sự kết luận

Trong bài viết này, tôi đã chia sẻ giải pháp của 10 thuật toán Python là vấn đề thường được hỏi trong các vòng phỏng vấn mã hóa. Nếu bạn đang chuẩn bị một cuộc phỏng vấn với một công ty công nghệ nổi tiếng, bài viết này là điểm khởi đầu tốt để làm quen với các mẫu thuật toán phổ biến và sau đó chuyển sang các câu hỏi phức tạp hơn. Cũng lưu ý rằng các bài tập được trình bày trong bài đăng này (cùng với các giải pháp của chúng) là giải thích lại một chút các vấn đề có sẵn trên LeetCode và Geekforgeek. Tôi không phải là một chuyên gia trong lĩnh vực này do đó các giải pháp tôi trình bày chỉ là những giải pháp chỉ ra.

Bạn cũng có thể thích:

Một ghi chú cho độc giả của tôi

Bài đăng này bao gồm các liên kết liên kết mà tôi có thể thực hiện một khoản hoa hồng nhỏ mà không phải trả thêm chi phí cho bạn, nếu bạn mua hàng.

Thuật toán nào được sử dụng trong Python?

Nhà vô địch thuật toán ML trị vì được cho là gói Scikit-Learn của Python, cung cấp cú pháp đơn giản và dễ dàng kết hợp với một kho báu của nhiều thuật toán. Trong khi một số thuật toán phù hợp hơn cho các nhiệm vụ cụ thể, những thuật toán khác được áp dụng rộng rãi cho bất kỳ dự án nào.scikit-learn package, which offers simple and easy syntax paired with a treasure trove of multiple algorithms. While some algorithms are more appropriate for specific tasks, others are widely applicable to any project.scikit-learn package, which offers simple and easy syntax paired with a treasure trove of multiple algorithms. While some algorithms are more appropriate for specific tasks, others are widely applicable to any project.

Ví dụ thuật toán là gì?

Thuật toán là tất cả xung quanh chúng ta.Các ví dụ phổ biến bao gồm: Công thức nướng bánh, phương pháp chúng tôi sử dụng để giải quyết vấn đề phân chia dài, quá trình giặt đồ và chức năng của công cụ tìm kiếm đều là những ví dụ về thuật toán.the recipe for baking a cake, the method we use to solve a long division problem, the process of doing laundry, and the functionality of a search engine are all examples of an algorithm.the recipe for baking a cake, the method we use to solve a long division problem, the process of doing laundry, and the functionality of a search engine are all examples of an algorithm.

Có thuật toán trong Python không?

Các thuật toán Python là một tập hợp các hướng dẫn được thực thi để có được giải pháp cho một vấn đề nhất định.Vì các thuật toán không dành riêng cho ngôn ngữ, chúng có thể được thực hiện trong một số ngôn ngữ lập trình.Không có quy tắc tiêu chuẩn hướng dẫn việc viết thuật toán.. Since algorithms are not language-specific, they can be implemented in several programming languages. No standard rules guide the writing of algorithms.. Since algorithms are not language-specific, they can be implemented in several programming languages. No standard rules guide the writing of algorithms.

Một python * thuật toán * là gì?

Thuật toán tìm kiếm* là một thuật toán tìm kiếm đơn giản và hiệu quả có thể được sử dụng để tìm đường dẫn tối ưu giữa hai nút trong biểu đồ.Nó sẽ được sử dụng cho việc tìm đường ngắn nhất.Đây là một phần mở rộng của thuật toán đường dẫn ngắn nhất của Dijkstra (thuật toán của Dijkstra).a simple and efficient search algorithm that can be used to find the optimal path between two nodes in a graph. It will be used for the shortest path finding. It is an extension of Dijkstra's shortest path algorithm (Dijkstra's Algorithm).a simple and efficient search algorithm that can be used to find the optimal path between two nodes in a graph. It will be used for the shortest path finding. It is an extension of Dijkstra's shortest path algorithm (Dijkstra's Algorithm).