Hướng dẫn python data structures and algorithms practice - thực hành giải thuật và cấu trúc dữ liệu python

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:51:43 [UTC/GMT +8 giờ]

Cấu trúc dữ liệu: [7 bài tập với giải pháp]

[Một trình soạn thảo có sẵn ở cuối trang để viết và thực thi các tập lệnh.]

1. Viết một chương trình Python để xác định vị trí điểm chèn bên trái cho một giá trị được chỉ định theo thứ tự được sắp xếp. Truy cập đầu ra dự kiến ​​của biên tập viên: 4 2 Nhấp vào tôi để xem giải pháp mẫu Write a Python program to locate the left insertion point for a specified value in sorted order. Go to the editor
Expected Output:
4
2
Click me to see the sample solution

2. Viết một chương trình Python để xác định vị trí điểm chèn phù hợp cho một giá trị được chỉ định theo thứ tự được sắp xếp. Truy cập đầu ra dự kiến ​​của biên tập viên: 3 2 Nhấp vào tôi để xem giải pháp mẫu Write a Python program to locate the right insertion point for a specified value in sorted order. Go to the editor
Expected Output:
3
2
Click me to see the sample solution

3. Viết một chương trình Python để chèn các mục vào một danh sách theo thứ tự được sắp xếp. Truy cập đầu ra dự kiến ​​của Biên tập , 69, 78] Nhấp vào tôi để xem giải pháp mẫu Write a Python program to insert items into a list in sorted order. Go to the editor
Expected Output:
Original List:
[25, 45, 36, 47, 69, 48, 68, 78, 14, 36]
Sorted List:
[14, 25, 36, 36, 45, 47, 48, 68, 69, 78]
Click me to see the sample solution

4. Viết chương trình Python để tạo hàng đợi và hiển thị tất cả các thành viên và kích thước của hàng đợi. Chuyển đến trình soạn thảo đầu ra dự kiến: Thành viên của hàng đợi: 0 1 2 3 Kích thước của hàng đợi: 4 Nhấp vào tôi để xem giải pháp mẫu Write a Python program to create a queue and display all the members and size of the queue. Go to the editor
Expected Output:
Members of the queue:
0 1 2 3
Size of the queue:
4
Click me to see the sample solution

5. Viết một chương trình Python để tìm thấy một hàng đợi có trống hay không. Chuyển đến trình soạn thảo đầu ra dự kiến: Đúng sai Nhấp vào tôi để xem giải pháp mẫu Write a Python program to find whether a queue is empty or not. Go to the editor
Expected Output:
True
False
Click me to see the sample solution

6. Viết một chương trình Python để tạo hàng đợi FIFO. Truy cập đầu ra dự kiến ​​của biên tập viên: 0 1 2 3 Nhấp vào tôi để xem giải pháp mẫu Write a Python program to create a FIFO queue. Go to the editor
Expected Output:
0 1 2 3
Click me to see the sample solution

7. Viết một chương trình Python để tạo hàng đợi LIFO. Truy cập đầu ra dự kiến ​​của biên tập viên: 3 2 1 0 Nhấp vào tôi để xem giải pháp mẫu Write a Python program to create a LIFO queue. Go to the editor
Expected Output:
3 2 1 0
Click me to see the sample solution

Trình chỉnh sửa mã Python:

Nhiều hơn nữa sẽ đến!

Không gửi bất kỳ giải pháp nào cho các bài tập trên tại đây, nếu bạn muốn đóng góp vào trang tập thể dục phù hợp.

Kiểm tra các kỹ năng Python của bạn với bài kiểm tra của W3Resource

Bài tập cấu trúc dữ liệu này là để người mới bắt đầu hiểu và thực hành cấu trúc dữ liệu cơ bản trong Python. Thực hành danh sách Python, đặt, từ điển và câu hỏi tuple.

Cấu trúc dữ liệu được sử dụng rộng rãi để giữ bất kỳ dữ liệu nào. Để thực hiện bất kỳ nhiệm vụ lập trình nào trong Python, kiến ​​thức tốt về cấu trúc dữ liệu là phải.

Giải quyết bài tập này để hiểu rõ về cấu trúc dữ liệu cơ bản trong Python

Bài tập này bao gồm các phần sau

  • Bài tập chứa 10 câu hỏi và giải pháp được cung cấp cho mỗi câu hỏi10 questions and solution provided for each question
  • Câu hỏi bao gồm Danh sách Thao tác, Từ điển, Bộ và Phương pháp Tuple.

Sử dụng biên tập mã trực tuyến để giải quyết các câu hỏi tập thể dục. Online Code Editor to solve exercise questions.

Bài tập 1: Tạo một danh sách bằng cách chọn một mục chỉ số kỳ lạ từ danh sách đầu tiên và thậm chí các mục chỉ mục từ phần thứ hai

Đưa ra hai danh sách, L1 và L2, hãy viết một chương trình để tạo danh sách thứ ba L3 bằng cách chọn một phần tử chỉ số lẻ từ danh sách L1 và thậm chí các phần tử chỉ mục từ danh sách L2.

Given::

l1 = [3, 6, 9, 12, 15, 18, 21]
l2 = [4, 8, 12, 16, 20, 24, 28]

Đầu ra dự kiến::

Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]

Hiển thị giải pháp

Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt

list1 = [54, 44, 27, 79, 91, 41]
0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.

Ví dụ: biểu thức

list1 = [54, 44, 27, 79, 91, 41]
1 trả về phần của danh sách từ chỉ mục bắt đầu đến chỉ mục dừng, ở bước kích thước bước.

  • cho danh sách đầu tiên: Bắt đầu từ chỉ mục đầu tiên với giá trị bước 2 vì vậy nó sẽ chọn các phần tử có mặt tại INDEX 1, 3, 5, v.v.
  • Đối với danh sách thứ 2: Bắt đầu từ chỉ mục 0 với giá trị bước 2, vì vậy nó sẽ chọn các phần tử có mặt tại INDEX 0, 2, 4, v.v.
list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]

Bài tập 2: Xóa và thêm mục trong danh sách

Viết một chương trình để xóa mục có mặt tại INDEX 4 và thêm nó vào vị trí thứ 2 và ở cuối danh sách.

Given::

list1 = [54, 44, 27, 79, 91, 41]

Đầu ra dự kiến::

List After removing element at index 4  [34, 54, 67, 89, 43, 94]
List after Adding element at index 2  [34, 54, 11, 67, 89, 43, 94]
List after Adding element at last  [34, 54, 11, 67, 89, 43, 94, 11]

Hiển thị giải pháp

Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt

list1 = [54, 44, 27, 79, 91, 41]
0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.

Hiển thị giải pháp

  • Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt
    list1 = [54, 44, 27, 79, 91, 41]
    0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.
  • Ví dụ: biểu thức
    list1 = [54, 44, 27, 79, 91, 41]
    1 trả về phần của danh sách từ chỉ mục bắt đầu đến chỉ mục dừng, ở bước kích thước bước.
  • cho danh sách đầu tiên: Bắt đầu từ chỉ mục đầu tiên với giá trị bước 2 vì vậy nó sẽ chọn các phần tử có mặt tại INDEX 1, 3, 5, v.v.
sample_list = [34, 54, 67, 89, 11, 43, 94]

print["Original list ", sample_list]
element = sample_list.pop[4]
print["List After removing element at index 4 ", sample_list]

sample_list.insert[2, element]
print["List after Adding element at index 2 ", sample_list]

sample_list.append[element]
print["List after Adding element at last ", sample_list]

Đối với danh sách thứ 2: Bắt đầu từ chỉ mục 0 với giá trị bước 2, vì vậy nó sẽ chọn các phần tử có mặt tại INDEX 0, 2, 4, v.v.

Given::

sample_list = [11, 45, 8, 23, 14, 12, 78, 45, 89]

Bài tập 2: Xóa và thêm mục trong danh sách:

Chunk  1 [11, 45, 8]
After reversing it  [8, 45, 11]
Chunk  2 [23, 14, 12]
After reversing it  [12, 14, 23]
Chunk  3 [78, 45, 89]
After reversing it  [89, 45, 78]

Hiển thị giải pháp

  • Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt
    list1 = [54, 44, 27, 79, 91, 41]
    0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.
  • Ví dụ: biểu thức
    list1 = [54, 44, 27, 79, 91, 41]
    1 trả về phần của danh sách từ chỉ mục bắt đầu đến chỉ mục dừng, ở bước kích thước bước.

Hiển thị giải pháp

  • Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt
    list1 = [54, 44, 27, 79, 91, 41]
    0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.
  • Ví dụ: biểu thức
    list1 = [54, 44, 27, 79, 91, 41]
    1 trả về phần của danh sách từ chỉ mục bắt đầu đến chỉ mục dừng, ở bước kích thước bước.
  • cho danh sách đầu tiên: Bắt đầu từ chỉ mục đầu tiên với giá trị bước 2 vì vậy nó sẽ chọn các phần tử có mặt tại INDEX 1, 3, 5, v.v.
  • Đối với danh sách thứ 2: Bắt đầu từ chỉ mục 0 với giá trị bước 2, vì vậy nó sẽ chọn các phần tử có mặt tại INDEX 0, 2, 4, v.v.
  • Bài tập 2: Xóa và thêm mục trong danh sách
sample_list = [11, 45, 8, 23, 14, 12, 78, 45, 89]
print["Original list ", sample_list]

length = len[sample_list]
chunk_size = int[length / 3]
start = 0
end = chunk_size

# run loop 3 times
for i in range[3]:
    # get indexes
    indexes = slice[start, end]
    
    # get chunk
    list_chunk = sample_list[indexes]
    print["Chunk ", i, list_chunk]
    
    # reverse chunk
    print["After reversing it ", list[reversed[list_chunk]]]

    start = end
    end += chunk_size

Viết một chương trình để xóa mục có mặt tại INDEX 4 và thêm nó vào vị trí thứ 2 và ở cuối danh sách.

Hiển thị gợi ý

Given::

sample_list = [11, 45, 8, 11, 23, 45, 23, 45, 89]

Đầu ra dự kiến::

Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]
0

Hiển thị giải pháp

Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]
1

Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt
list1 = [54, 44, 27, 79, 91, 41]
0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.

Given::

Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]
2

Đầu ra dự kiến::

Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]
3

Hiển thị giải pháp

Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt

list1 = [54, 44, 27, 79, 91, 41]
0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.

Hiển thị giải pháp

Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]
4

Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt
list1 = [54, 44, 27, 79, 91, 41]
0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.

Ví dụ: biểu thức

list1 = [54, 44, 27, 79, 91, 41]
1 trả về phần của danh sách từ chỉ mục bắt đầu đến chỉ mục dừng, ở bước kích thước bước.: Python Set

Given::

Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]
5

Đầu ra dự kiến::

Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]
6

Hiển thị giải pháp

  • Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt
    list1 = [54, 44, 27, 79, 91, 41]
    0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.

Hiển thị giải pháp

  • Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt
    list1 = [54, 44, 27, 79, 91, 41]
    0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.
  • Ví dụ: biểu thức
    list1 = [54, 44, 27, 79, 91, 41]
    1 trả về phần của danh sách từ chỉ mục bắt đầu đến chỉ mục dừng, ở bước kích thước bước.
  • cho danh sách đầu tiên: Bắt đầu từ chỉ mục đầu tiên với giá trị bước 2 vì vậy nó sẽ chọn các phần tử có mặt tại INDEX 1, 3, 5, v.v.
Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]
7

Đối với danh sách thứ 2: Bắt đầu từ chỉ mục 0 với giá trị bước 2, vì vậy nó sẽ chọn các phần tử có mặt tại INDEX 0, 2, 4, v.v.

Given::

Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]
8

Đầu ra dự kiến::

Element at odd-index positions from list one
[6, 12, 18]
Element at even-index positions from list two
[4, 12, 20, 28]

Printing Final third list
[6, 12, 18, 4, 12, 20, 28]
9

Hiển thị giải pháp

Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt

list1 = [54, 44, 27, 79, 91, 41]
0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.

  • Ví dụ: biểu thức
    list1 = [54, 44, 27, 79, 91, 41]
    1 trả về phần của danh sách từ chỉ mục bắt đầu đến chỉ mục dừng, ở bước kích thước bước.
  • sample_list = [34, 54, 67, 89, 11, 43, 94]
    
    print["Original list ", sample_list]
    element = sample_list.pop[4]
    print["List After removing element at index 4 ", sample_list]
    
    sample_list.insert[2, element]
    print["List after Adding element at index 2 ", sample_list]
    
    sample_list.append[element]
    print["List after Adding element at last ", sample_list]
    0
  • sample_list = [34, 54, 67, 89, 11, 43, 94]
    
    print["Original list ", sample_list]
    element = sample_list.pop[4]
    print["List After removing element at index 4 ", sample_list]
    
    sample_list.insert[2, element]
    print["List after Adding element at index 2 ", sample_list]
    
    sample_list.append[element]
    print["List after Adding element at last ", sample_list]
    1

Hiển thị giải pháp

list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]
0

Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt
list1 = [54, 44, 27, 79, 91, 41]
0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.

Given::

list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]
1

Bài tập 2: Xóa và thêm mục trong danh sách:

list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]
2

Hiển thị giải pháp

list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]
3

Để truy cập một loạt các mục trong danh sách, hãy sử dụng toán tử cắt
list1 = [54, 44, 27, 79, 91, 41]
0. Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, kết thúc và chỉ định bước.

Given::

list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]
4

Kết quả dự kiến::

list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]
5

Hiển thị giải pháp

list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]
6

Bài tập 10: Xóa các bản sao khỏi danh sách và tạo một tuple và tìm số lượng tối thiểu và tối đa

Given::

list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]
7

Kết quả dự kiến::

list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]
8

Hiển thị giải pháp

list1 = [3, 6, 9, 12, 15, 18, 21]
list2 = [4, 8, 12, 16, 20, 24, 28]
res = list[]

odd_elements = list1[1::2]
print["Element at odd-index positions from list one"]
print[odd_elements]

even_elements = list2[0::2]
print["Element at even-index positions from list two"]
print[even_elements]

print["Printing Final third list"]
res.extend[odd_elements]
res.extend[even_elements]
print[res]
9

Tôi có thể thực hành cấu trúc dữ liệu và thuật toán ở đâu trong Python?

Bạn có thể tham gia một vài trong số các khóa học trực tuyến này để tìm hiểu các cấu trúc dữ liệu và thuật toán trong Python ...
Python cho các cấu trúc dữ liệu, thuật toán và phỏng vấn! ....
Thuật toán và cấu trúc dữ liệu trong Python [Khóa học tốt nhất của Udemy] ....
LeetCode trong Python: 50 Thuật toán Câu hỏi phỏng vấn mã hóa ..

Tôi có thể sử dụng Python cho các cấu trúc dữ liệu và thuật toán không?

Trong các cấu trúc và thuật toán dữ liệu này thông qua khóa học sâu, các chương trình Python được sử dụng để thực hiện các khái niệm khác nhau, nhưng bạn có thể dễ dàng mã hóa chúng bằng bất kỳ ngôn ngữ lập trình nào khác như C ++, Java hoặc C#.Python programs are used for implementing various concepts, but you can easily code them in any other programming language like C++, Java or C#.

Tôi có thể thực hành cấu trúc dữ liệu và thuật toán ở đâu?

7 trang web tốt nhất để chuẩn bị cho cấu trúc dữ liệu, thuật toán và câu hỏi phỏng vấn mã hóa..
Udemy. Đây là một trong những trang web tốt nhất để tìm các khóa học chuẩn bị phỏng vấn lập trình với giá cả phải chăng. ....
Giáo dục.....
LeetCode.....
Hackerrank.....
Các cuộc đấu mã.....
Bánh phỏng vấn.....
Pramp.....
5 cuốn sách và khóa học tốt nhất cho các cuộc phỏng vấn mã hóa ..

Cách tốt nhất để thực hành với các thuật toán và cấu trúc dữ liệu là gì?

7 bước để cải thiện cấu trúc dữ liệu và kỹ năng thuật toán của bạn..
Bước 1: Hiểu độ sâu so với ....
Bước 2: Bắt đầu cách tiếp cận chiều sâu đầu tiên, tạo ra một danh sách các câu hỏi cốt lõi.....
Bước 3: Làm chủ từng cấu trúc dữ liệu.....
Bước 4: Lặp lại khoảng cách.....
Bước 5: Các kỹ thuật cô lập được tái sử dụng.....
Bước 6: Bây giờ, đã đến lúc chiều rộng ..

Bài Viết Liên Quan

Chủ Đề