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.
Thử thách
Chuyên giaHoà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
4Các tập hợp lồng nhau
Danh sách các danh sáchDuyệt qua các hàngTóm tắt từng hàngLàm phẳng danh sách lồng nhauÔn tập: Các hàng ghế3Tập hợp và phép kiểm tra thành viên
Tạo tập hợpCập nhật tập hợpCác phép toán trên tập hợpKiểm tra tập conÔn tập: Khách mời sự kiện6Giá trị hàm
Viết biểu thức lambdaCác kiểu hàmTruyền hàmBiến được captureÔn tập: Điểm số có thể tùy chỉnh9Luồng điều khiển nâng cao
Mệnh đề bảo vệThoát khỏi vòng lặp có nhãnTiếp tục vòng lặp có nhãnHàm đệ quyÔn tập: hàng hợp lệ đầu tiênTự luyện tập: Playground Kotlin