Hướng dẫn decode the coding interview in python real world examples github - giải mã cuộc phỏng vấn mã hóa trong các ví dụ thế giới thực về python github

Python-Interview-Progress-for-practice (hiện được hỗ trợ với kiểu mã)

Hướng dẫn decode the coding interview in python real world examples github - giải mã cuộc phỏng vấn mã hóa trong các ví dụ thế giới thực về python github

Cập nhật

Vấn đềLiên kết
Đưa ra một loạt các số nguyên, hãy tìm cặp phần tử liền kề có sản phẩm lớn nhất và trả lại sản phẩm đó.Adjacentelementproduct.py
Chuyển đổi chuỗi "123" thành 123, mà không cần sử dụngatoi.py
Đưa ra một mảng, tìm nếu số tồn tại, phát triển triển khai recursive của tìm kiếm nhị phân. Nếu phần tử không được tìm thấy, nó sẽ trả về -1Binary_Search_Recursive.py
Thuật toán dòng Bresenham (BLA) là một trong những thuật toán sớm nhất được phát triển trong đồ họa máy tính. Nó được sử dụng để vẽ các dòngBresenham_line_algorithm.py
Tìm không. của các nút trong một BST nằm trong một phạm vi nhất địnhbst_nodes_in_range.py
Sắp xếp bong bóngBubbledort.py
Tìm góc được thực hiện bằng tay giờ và bàn tay phút tại bất kỳ thời điểm nào. Giả sử nó là một đồng hồ tương tựTÍNH TOÁN TÍNH TOÁN.PY
Hai chuỗi có kích thước m và n được đưa ra, chúng ta phải tìm ra có bao nhiêu ký tự cần được xóa khỏi cả hai chuỗi để chúng trở thành đối tượng của nhauCheck_anagrams.py
Tìm các số là bán kết, trong một phạm vi nhất định. Bán kết là một sản phẩm của hai số nguyên tố, không nhất thiết phải khác biệt. Bình phương của số nguyên tố cũng là một nửa đêm.Check_Semiprime.py
Đưa ra một biểu đồ, có hai phương pháp để thực hiện Traversal trên nó 1. Tìm kiếm đầu tiên (DFS) 2. Tìm kiếm đầu tiên (BFS)dfs_bfs.py
Đường kính của cây (đôi khi được gọi là chiều rộng) là số lượng nút trên đường dài nhất giữa hai nút đầu (nút lá ngoài cùng bên trái và nút lá ngoài cùng bên phải).đường kính
Ước tính Pi bằng cách sử dụng phân phối ngẫu nhiênƯớc tính_Pi.py
Viết một chương trình hiệu quả để in k các yếu tố lớn nhất trong một mảng. Các yếu tố trong mảng có thể theo bất kỳ thứ tự.find_k_largest.py
Đưa ra một danh sách được liên kết, phương thức này sẽ đưa phần tử m'th trở lại 2-> 3-> 4-> 8-> 5; m = 2 sẽ trở lại 8 vì 8 là thứ hai saufind_m_to_last_llist.py
Cho một mảng số, tìm tất cả các cặp số tổng hợp lên đến kfind_pairs_sum_k.py
Cho một mảng số, tìm tất cả các cặp số có sản phẩm là kfind_products_pair_k.py
Đưa ra một loạt các số nguyên, hãy viết một hàm trả về đúng nếu có một bộ ba (a, b, c) thỏa mãn a^2 + b^2 = c^2.find_pythagoras_triplet.py
Cho một cây nhị phân, hãy tìm nút lớn thứ hai trong đófind_second_largest_in_binary_tree.py
Viết một hàm tính toán danh sách 100 số Fibonacci đầu tiênFIRST_N_FIBO.PY
Cho một chuỗi đầu vào, nó cung cấp ký tự không lặp lại đầu tiên trong đóFIRST_NON_REPEATING.PY
Cho một chuỗi đầu vào, hãy tìm ký tự định kỳ đầu tiên trong đó.First_Recurring_Character.py
Cho một chuỗi, tìm ký tự không lặp lại đầu tiên trong đó. Ví dụ: nếu chuỗi đầu vào là Geeksforgeeks, thì đầu ra phải là ‘F, và nếu chuỗi đầu vào là Geeksquiz, thì đầu ra phải là’ g.First_unique_letter.py
Viết một hàm đưa ra một danh sách các số nguyên không âm, sắp xếp chúng sao cho chúng tạo thành số lớn nhất có thể. Ví dụ: được cho [50, 2, 1, 9], số được hình thành lớn nhất là 95021gen_largest_num_frm_list.py
Cấu trúc dữ liệu cây trong PythonGeneral_Tree_Structure.py
Với thời gian đến và đi của tất cả các chuyến tàu đến ga xe lửa, nhiệm vụ là tìm số lượng tối thiểu các nền tảng cần thiết cho nhà ga đường sắt để không có chuyến tàu nào chờ đợi.

Chúng tôi được cung cấp hai mảng đại diện cho thời gian đến và thời gian đi của các chuyến tàu dừng lại.

getMinplatforms.py
In các ký tự trùng lặp vào một chuỗiget_dup_chars.py
Kiểm tra xem một mảng đã cho có mảng phụ không khôngHaszerosumsubarray.py
Cho một chuỗi, kiểm tra xem nó chỉ chứa các chữ sốhas_only_digits.py
Cho hai lat, tọa độ dài, tính khoảng cách Haversine giữa chúngHAVERSINE.PY
Cấu trúc dữ liệu heapheap_structure.py
In số từ 1 đến 100 mà không cần sử dụng bất kỳ số hoặc số nguyên nàoHàng trăm_without_int.py
Viết một chương trình chuyển đổi Interger thành Đại diện La Mãinterger_to_roman_num.py
Cho hai mảng được sắp xếp các kích thước M và N trong đó tất cả các yếu tố là khác biệt. Tìm các yếu tố phổ biến giữa chúngGiao lộ_arrays.py
Kiểm tra xem ma trận có đối xứng hay khôngismatrixsymmetric.py
Kiểm tra xem hai chuỗi có phải là đối thủ của nhau khôngis_anagram.py
Kiểm tra xem hai chuỗi có phải là đối thủ của nhau khôngis_anagram.py
is_anagram_using_collections.pyViết một chương trình để kiểm tra xem một số có phải là palindrom hay không
is_num_palindrom.pyCho một chuỗi, trả về true nếu đó là một loại dữ liệu số, sai nếu không
is_numeric.pyJosephus.py
Độ phức tạp thời gian hiệu quả của phiên bản cải tiến này là O (logn). Đối với báo cáo vấn đề, hãy tham khảo josephus.pyjosephus_improved.py
Độ phức tạp thời gian hiệu quả của phiên bản cải tiến này là O (1). Đối với báo cáo vấn đề, hãy tham khảo josephus.pyjosephus_improved_v3.py
Thực hiện thuật toán Karatsubakaratsuba.py
Thực hiện các cấp độ đơn đặt hàng cho một cây nhị phânlevel_order_tree.py
Cấu trúc dữ liệu danh sách được liên kếtlinked_list_data_structure.py
Phát hiện nếu một danh sách được liên kết có một vòng lặploop_in_linkedlist.py
Tìm tổ tiên chung thấp nhất giữa hai nút trong một cây tìm kiếm nhị phân. Đặt t là một cây gốc. Tổ tiên chung thấp nhất giữa hai nút N1 và N2 được định nghĩa là nút thấp nhất trong T có cả N1 và N2 là hậu duệ (nơi chúng tôi cho phép một nút là hậu duệ của chính nó).

LCA của N1 và N2 trong T là tổ tiên chung của N1 và N2 nằm cách xa gốc nhất.

lowest_common_ancestor.py
Một phần tử đa số trong một mảng a [] có kích thước n là một phần tử xuất hiện nhiều hơn n/2 lần. Tìm phần lớn yếu tố trong mảng đã cho.MIGOITY_ELEMENT.PY
Tìm số tối đa trong một mảng mà không sử dụng các hàm tích hợpMax_in_array.py
Đưa ra một danh sách các số dương và âm, hãy tìm tổng Subarray tối đa. Ràng buộc: Giải quyết nó trong O (N)Maximum_Subarray_Sum.py
Thực hiện Sắp xếp hợp nhấtHợp nhất_sort.py
Tìm số tối thiểu và tối đa trong một mảng trong một vòng lặp duy nhấtmin_max_array_oneloop.py
Đưa ra một loạt các số nguyên, chúng ta cần di chuyển tất cả các số 0 đến cuối và duy trì thứ tự phần còn lại của các yếu tố. Không cần phải nói nó phải là một giải pháp tại chỗMove_Zeros_TO_END.PY
In các nút của một cây nhị phân không có anh chị emNO_SIBLING_TREE.PY
Hãy để tất cả các số lẻ đến trước các số chẵn, và sắp xếp các số lẻ theo thứ tự tăng dần và số chẵn theo thứ tự giảm dần. Ví dụ: chuỗi '1982376455' trở thành '1355798642'ODDASCEVENDESC.PY
Tính và in Pascal Traiingle, cho không. cấp độpascal_triangle.py
Sử dụng giai thừa, giảm độ phức tạp thời gian của chương trình từ O (2^n) xuống O (n)pascals_triangle_improved.py
In các hoán vị của một chuỗihoán vị.py
In hoputatations của một chuỗi (đơn giản hóa)hoán vị_strings.py
Đơn đặt hàng trước của một cây tìm kiếm nhị phân theo kiểu lặp đi lặp lạiPreSter_Iterative_bst.py
Thực hiện hàng đợi ưu tiênưu tiên_queue_simple.py
Xử lý chuỗi "K: 1K1: 2
Cho một mảng mảng [] của N số nguyên, xây dựng một mảng sản phẩm prod [] (có cùng kích thước) sao cho prod [i] bằng với sản phẩm của tất cả các phần tử của ARR [] ngoại trừ ARR [i].Product_Puzzer.py
Thực hiện cấu trúc dữ liệu hàng đợiQueue_data_structure.py
Thực hiện loại nhanhQuick_Sort.py
Viết một hàm hiệu quả xóa các ký tự khỏi chuỗi ASCII trong đó bất kỳ ký tự nào tồn tại trong Xóa phải được xóa khỏi STR. Ví dụ, với một loạt các nguyên âm: Hawaii so với Grozny "và loại bỏ" aeiou ", chức năng sẽ chuyển đổi Str thànhremove_chars.py
Xóa các ký tự trùng lặp khỏi chuỗiremove_dup_chars.py
Xóa các bản sao bằng cách sử dụng từ điểnremove_duplicates.py
Xóa các bản sao bằng cách sử dụng thêm không gianremove_duplicates_v2.py
Đảo ngược chuỗi vào vị tríReverse_in_place.py
Đảo ngược chuỗi bằng cách sử dụng đệ quyReverse_str_recursive.py
Cho một câu, đảo ngược mỗi từ nhưng không đảo ngược câuReverse_words.py
Cho một ma trận, xoay nó 180 độRotatematrix180deg.py
Tìm trung bình từ luồng dữ liệu của số nguyênRunning_Median_Integers.py
Cho một mảng được sắp xếp trong đó tất cả các phần tử xuất hiện hai lần (một lần sau một) và một phần tử chỉ xuất hiện một lần. Tìm các ràng buộc phần tử đó: trong o (log n) độ phức tạp.search_unique.py
Một triển khai đơn giản của loại lựa chọnselect_sort.py
Một triển khai đơn giản cấu trúc dữ liệu ngăn xếpstack_data_structure.py
Khoảng SI của giá cổ phiếu vào một ngày nhất định, tôi được định nghĩa là số ngày liên tiếp tối đa ngay trước ngày nhất định, giá của cổ phiếu vào ngày hiện tại ít hơn hoặc bằng giá của nó vào ngày nhất định .

Vấn đề: Chúng tôi có một loạt giá báo giá hàng ngày cho một cổ phiếu và chúng tôi cần tính toán khoảng giá cổ phiếu cho tất cả các ngày N

Stock_Span.py
Viết một chương trình để tổng hợp một mảng nhất định bằng cách sử dụng đệ quysum_array_recursion.py
Bạn đang nhận được hai luồng dữ liệu với ngày làm khóa, hợp nhất hai luồng và trả về trung bình của các giá trị nếu có một ngày phổ biến khác chỉ cập nhật giá trị như nhận được trong luồng, hãy tham khảo ví dụ trong mãThời gian.py
Cho hai mảng được sắp xếp các kích thước M và N trong đó tất cả các yếu tố là khác biệt. Tìm sự kết hợp giữa chúng ràng buộc: trong độ phức tạp O (M+N).union_arrays.py
Chương trình xác nhận tên người dùngusername_validation.py
Đưa ra một mảng các số nguyên (+ve, -ve và 0) Tìm dấu hiệu của sản phẩm của tất cả các giá trị đã cho.SignOfProduct.py

Các vấn đề có sẵn: đã giải quyết - 63; Mới thêm - 57

1. Kiểu mã được thêm vào

2. 57 Các vấn đề mới được thêm vào trong Interview_Questions.md. Giải pháp sẽ được tải lên sớm.

40+ Bộ luật phổ biến và các vấn đề phỏng vấn được giải quyết trong Python (nó đang phát triển ...)

Ý tưởng cốt lõi không phải là sử dụng các chức năng hoặc thư viện tích hợp và cung cấp cho nó một cách tiếp cận dựa trên logic hơn, để nó có thể thân thiện với ngôn ngữ và cuối cùng không phải là một kho lưu trữ khác của "các mẹo và thủ thuật Python".

Mã tốt như thế nào?

  • Nó được kiểm tra tốt
  • Định dạng nhất quán (sử dụng màu đen)
  • Nó có thể biên dịch ở trạng thái hiện tại của nó (và không có vấn đề gì)

Có bao nhiêu hỗ trợ có sẵn?

  • Câu hỏi thường gặp (sắp ra mắt)
  • Tài liệu (sắp ra mắt)

Vấn đề

Hãy thoải mái gửi các vấn đề và yêu cầu nâng cao.

Đóng góp

Vui lòng tham khảo các hướng dẫn và hướng dẫn theo phong cách của từng dự án để gửi các bản vá và bổ sung. Nói chung, chúng tôi theo quy trình công việc Git "Fork-and-Pull".

  1. Fork the repo trên github the repo on GitHub
  2. Sao chép dự án vào máy của riêng bạn the project to your own machine
  3. Cam kết thay đổi chi nhánh của riêng bạn changes to your own branch
  4. Đẩy công việc của bạn trở lại ngã ba của bạn your work back up to your fork
  5. Gửi yêu cầu kéo để chúng tôi có thể xem xét các thay đổi của bạnPull request so that we can review your changes

Lưu ý: Hãy chắc chắn hợp nhất mới nhất từ ​​"ngược dòng" trước khi đưa ra yêu cầu kéo!

GIẤY PHÉP

Giấy phép MIT