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] Depth limit: kiểm tra độ sâu query

    Độ sâu query (depth limit)

    Để chống tấn công query lồng quá sâu, server giới hạn độ sâu tối đa. Độ sâu của query là số cấp { } lồng nhau sâu nhất (selection set ngoài cùng là cấp 1).

    Cho một query và giới hạn L, in ok nếu độ sâu ≤ L, ngược lại in too deep: <độ sâu>.

    Ví dụ

    Input:

    2
    query { user { name } }
    

    Output:

    ok
    

    Giải thích: độ sâu = 2 ≤ 2.

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

      Dòng 1: số nguyên L (giới hạn). Dòng 2: query GraphQL.

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

      1 ≤ L ≤ 20. Query hợp lệ về cặp ngoặc.

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

      ok nếu độ sâu ≤ L, ngược lại too deep: <độ sâu>.

    Ví dụ:

    Đầu vào:

    2
    query { user { name } }
    

    Đầu ra:

    ok

    Giải thích:

    Hai cấp ngoặc lồng nhau, độ sâu 2 không vượt giới hạn 2.

    Đang tải editor...