Sắp xếp tên sách tiếng Anh Một thư viện vừa nhập về một kho sách mới về ngoại ngữ gồm n quyển, nhưng các quyển sách được sắp xếp rất lộn xộn

Sắp xếp tên sách tiếng Anh

Một thư viện vừa nhập về một kho sách mới về ngoại ngữ gồm n quyển, nhưng các quyển sách được sắp xếp rất lộn xộn. Em hãy giúp thủ thư sắp xếp lại những quyển sách này theo thứ tự từ điển, để việc xếp lên giá sách được thuận tiện hơn. Danh sách các sách được lưu trong tệp danhsach.txt.

Gợi ý: Một xâu 4 độ dài 1, được gọi là đứng trước xâu B độ dài 1, theo thứ tự từ điển, nếu sau khi loại bỏ toàn bộ khoảng trắng, tồn tại vị trí i đầu tiên sao cho khi so sánh thứ tự trong bảng chữ cái, A #B và 4 đứng trước B; hoặc 1, ≤ 1 và A = B với mọi i<I

Dữ liệu: Nhập từ tệp danhsach.txt:

- Dòng đầu tiên chứa số nguyên n.

- n dòng sau, mỗi dòng là một xâu biểu thị tên của một quyển sách. Dữ liệu đảm bảo tên chỉ gồm các chữ cái Latinh in hoa hoặc in thường cùng với dấu cách, giữa hai từ liên tiếp nhau chỉ chứa đúng một dấu cách và không có hai quyển sách nào trùng tên nếu không tính in hoa hoặc in thường. Kết quả: Hiển thị ở thiết bị ra chuẩn:

Sắp xếp tên sách tiếng Anh Một thư viện vừa nhập về một kho sách mới về ngoại ngữ gồm n quyển, nhưng các quyển sách được sắp xếp rất lộn xộn (ảnh 1)

Trả lời

Vì thứ tự từ điển của hai xâu không phụ thuộc vào chữ hoa/thường, mà vị trí của chữ hoa/thường trên bảng ASCII lại khác nhau, nên khi so sánh em đưa tất cả về chỉ chữ hoa hoặc chỉ chữ thường để so sánh.

Để đưa tất cả kí tự của xâu S bất kì thành chữ hoa, ta dùng S.upper(). Ngược lại, để đưa về chữ thường, ta dùng S.lower ().

Sắp xếp tên sách tiếng Anh Một thư viện vừa nhập về một kho sách mới về ngoại ngữ gồm n quyển, nhưng các quyển sách được sắp xếp rất lộn xộn (ảnh 2)
Sắp xếp tên sách tiếng Anh Một thư viện vừa nhập về một kho sách mới về ngoại ngữ gồm n quyển, nhưng các quyển sách được sắp xếp rất lộn xộn (ảnh 3)

Câu hỏi cùng chủ đề

Xem tất cả