Bài tập  /  Bài đang cần trả lời

Tại căng tin, các bạn học sinh đang xếp thành hai hàng để chờ đến lượt nhận suất ăn trưa. Đề công bằng, bác đầu bếp sẽ phát suất ăn trưa cho lần lượt từng bạn theo quy tắc: bạn đầu hàng của hàng thứ nhất, rồi đến bạn đầu hàng của hàng thứ hai. Thứ tự này lặp đi lặp lại cho đến khi một trong hai hàng không còn học sinh. Khi đó, những bạn ở hàng còn lại sẽ được tiếp tục phát theo thứ tự lần lượt từ đầu đến cuối hàng cho đến khi tất cả các học sinh đều nhận được suất ăn của mình. Em hãy viết hàm ...

Tại căng tin, các bạn học sinh đang xếp thành hai hàng để chờ đến lượt nhận suất ăn trưa. Đề công bằng, bác đầu bếp sẽ phát suất ăn trưa cho lần lượt từng bạn theo quy tắc: bạn đầu hàng của hàng thứ nhất, rồi đến bạn đầu hàng của hàng thứ hai. Thứ tự này lặp đi lặp lại cho đến khi một trong hai hàng không còn học sinh. Khi đó, những bạn ở hàng còn lại sẽ được tiếp tục phát theo thứ tự lần lượt từ đầu đến cuối hàng cho đến khi tất cả các học sinh đều nhận được suất ăn của mình. Em hãy viết hàm nhan suat an(QI, Q2) với tham số đầu vào là hai hàng đợi Q1, Q2. Hàm thực hiện in ra màn hình tên của các học sinh một cách lần lượt theo đúng thứ tự nhận suất ăn trưa.

Ví dụ: Các bạn Thái, Trà, Mai theo thứ tự đang xếp ở hàng đợi Q1. Các bạn Đức, Hùng, Cường, Bình, Phước theo thứ tự đang xếp ở hàng đợi Q2. Hàm nhan suat an(Ql, Q2) sẽ in ra màn hình tên của các học sinh theo thử tự như sau: Thái, Đức, Trà, Hùng, Mai, Cường, Bình, Phước.

1 Xem trả lời
Hỏi chi tiết
17
0
0
Trần Bảo Ngọc
11/09/2024 14:07:28

Tại căng tin, các bạn học sinh đang xếp thành hai hàng để chờ đến lượt nhận suất ăn trưa. Đề công bằng, bác đầu bếp sẽ phát suất ăn trưa cho lần lượt từng bạn theo quy tắc: bạn đầu hàng của hàng thứ nhất, rồi đến bạn đầu hàng của hàng thứ hai. Thứ tự này lặp đi lặp lại cho đến khi một trong hai hàng không còn học sinh. Khi đó, những bạn ở hàng còn lại sẽ được tiếp tục phát theo thứ tự lần lượt từ đầu đến cuối hàng cho đến khi tất cả các học sinh đều nhận được suất ăn của mình. Em viết hàm nhan_suat_an(QI, Q2) với tham số đầu vào là hai hàng đợi Q1, Q2. Hàm thực hiện in ra màn hình tên của các học sinh một cách lần lượt theo đúng thứ tự nhận suất ăn trưa như sau:

1. Khởi tạo hàng đợi: Chuyển danh sách Q1 và Q2 thành hàng đợi deque để sử dụng các phương thức hàng đợi như popleft.

2. Duyệt qua các hàng đợi:

Sử dụng một vòng lặp while để tiếp tục duyệt cho đến khi cả hai hàng đợi đều trống.

Trong mỗi lần lặp, kiểm tra nếu queue1 không trống, lấy phần tử đầu tiên từ queue1 và thêm vào kết quả.

Tiếp theo, nếu queue2 không trống, lấy phần tử đầu tiên từ queue2 và thêm vào kết quả.

3. In kết quả:

Sau khi vòng lặp kết thúc, danh sách result chứa các tên học sinh theo thứ tự nhận suất ăn.

Sử dụng join để kết hợp các tên trong danh sách thành một chuỗi và in ra màn hình.

* Code như sau:

from collections import deque

def nhan_suat_an(Q1, Q2):

   # Chuyển đổi danh sách đầu vào thành deque để sử dụng như hàng đợi

   queue1 = deque(Q1)

   queue2 = deque(Q2)

   result = []

   # Lặp lại cho đến khi cả hai hàng đều trống

   while queue1 or queue2:

        if queue1:

            result.append(queue1.popleft())

        if queue2:

            result.append(queue2.popleft())

   # In kết quả ra màn hình

   print(", ".join(result))

# Ví dụ đầu vào

Q1 = ["Thái", "Trà", "Mai"]

Q2 = ["Đức", "Hùng", "Cường", "Bình", "Phước"]

# Gọi hàm và in kết quả

nhan_suat_an(Q1,Q2)

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Câu hỏi liên quan

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×