Menu
CoddyTech

Thử thách: Đồ dùng chung

Thuộc phần Logic và luồng chương trình trong hành trình Kotlin của Coddy. Bài học 63 trên 63.

challenge icon

Thử thách

Chuyên gia

Hoàn thiện sharedSupplies với các tham số requests: List<String>, available: List<String>. Mỗi yêu cầu là danh sách các vật phẩm cần thiết, phân tách bằng dấu phẩy. Cắt khoảng trắng ở hai đầu các trường, chuyển tên ASCII thành chữ thường và loại bỏ các trường rỗng. Có thể đáp ứng một yêu cầu nếu tất cả vật phẩm cần thiết phân biệt của yêu cầu đó đều có trong danh sách available sau khi chuẩn hóa bằng cách cắt khoảng trắng và chuyển thành chữ thường như trên. Có thể đáp ứng các yêu cầu rỗng. Với mỗi yêu cầu, trả về index=ready hoặc index=missing:item1,item2, trong đó các tên vật phẩm còn thiếu không trùng lặp và được sắp xếp. Dùng chỉ số bắt đầu từ 0. Tính khả dụng dựa trên việc vật phẩm có trong danh sách hay không, không dựa trên số lượng.

Trừ khi có giới hạn chặt hơn được nêu ở trên, mỗi danh sách chứa tối đa 100 phần tử ở mỗi cấp, còn các đối số số nguyên và giá trị số nguyên trong danh sách nằm trong khoảng từ -1000 đến 1000. Văn bản được cung cấp để phân tích có thể chứa các cách biểu diễn không hợp lệ hoặc vượt ngoài phạm vi như mô tả.

Trả về giá trị thuộc kiểu List<String>. Giữ nguyên code đầu vào/đầu ra được cung cấp. Code này đọc từng đối số vô hướng trên một dòng; danh sách bắt đầu bằng số phần tử, sau đó là các phần tử; từ điển bắt đầu bằng số mục, sau đó là từng khóa và giá trị. Với danh sách lồng nhau, mỗi hàng lặp lại định dạng số phần tử rồi đến các phần tử. main được cung cấp sẽ in giá trị trả về, sau đó xuống dòng một lần. Danh sách dùng định dạng chuẩn có dấu ngoặc vuông của Kotlin; không in thêm nhãn.

Tự làm thử

fun sharedSupplies(requests: List<String>, available: List<String>): List<String> {
    // Viết lời giải của bạn ở đây.
    return emptyList()
}
fun main() {
    val requestsCount = readln().toInt()
    val requests = mutableListOf<String>()
    for (i0 in 0 until requestsCount) {
        val requestsItem = readLine().orEmpty()
        requests.add(requestsItem)
    }
    val availableCount = readln().toInt()
    val available = mutableListOf<String>()
    for (i0 in 0 until availableCount) {
        val availableItem = readLine().orEmpty()
        available.add(availableItem)
    }
    println(sharedSupplies(requests, available))
}

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Playground Kotlin