Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Lập trình Web & Backend] Sắp xếp theo nhiều trường

    Sắp xếp theo nhiều trường

    Đôi khi cần sắp xếp theo nhiều tiêu chí: ví dụ sắp theo department tăng dần, nếu bằng nhau thì theo salary giảm dần.

    Cho danh sách bản ghi và danh sách khóa sắp xếp sortKeys — mỗi khóa là object { "field": <tên trường>, "dir": "asc"|"desc" }. Áp dụng lần lượt: khóa đầu ưu tiên cao nhất, khóa sau là tie-breaker. Nếu tất cả khóa đều bằng nhau, giữ thứ tự ban đầu (ổn định).

    Ví dụ

    Sắp theo dept asc rồi salary desc: cùng phòng thì lương cao đứng trước.

    • Định dạng đầu vào:

      Dòng 1: JSON mảng bản ghi. Dòng 2: JSON mảng sortKeys, mỗi phần tử { "field":..., "dir":... }.

    • Ràng buộc đầu vào:

      0 ≤ số bản ghi ≤ 1000; 1 ≤ số sortKeys ≤ 5; trường tồn tại; giá trị mỗi trường là số hoặc chuỗi đồng nhất.

    • Định dạng đầu ra:

      In JSON mảng bản ghi đã sắp xếp.

    Ví dụ:

    Đầu vào:

    [{"dept":"B","sal":100},{"dept":"A","sal":50},{"dept":"A","sal":90},{"dept":"B","sal":80}]
    [{"field":"dept","dir":"asc"},{"field":"sal","dir":"desc"}]
    

    Đầu ra:

    [{"dept":"A","sal":90},{"dept":"A","sal":50},{"dept":"B","sal":100},{"dept":"B","sal":80}]

    Giải thích:

    Sắp dept asc: A trước B. Trong cùng dept, sal desc. → A90,A50,B100,B80.

    Đang tải editor...