Ôn tập: Bàn giao dịch cổ phiếu
Thuộc phần Logic và luồng điều khiển trong hành trình R của Coddy. Bài học 11 trên 64.
Thử thách
Trung bìnhHoàn thành hàm (function) process_orders(stock, orders). Xử lý các đơn hàng theo thứ tự và trả về một dòng cho mỗi đơn:
unknown <item>khi mặt hàng không có trongstockout of <item>khi số lượng của mặt hàng là 0sold <item>trong các trường hợp còn lại, đồng thời giảm số lượng của mặt hàng đi 1
Sau các đơn hàng, thêm một dòng cho mỗi mặt hàng còn trong kho theo thứ tự bảng chữ cái: <item>: <quantity>.
Code được cung cấp đọc thông tin kho dưới dạng các cặp name=quantity và các đơn hàng dưới dạng một dòng phân tách bằng dấu phẩy, rồi in ra từng dòng được trả về.
Tự làm thử
process_orders <- function(stock, orders) {
# Viết code của bạn ở đây
character(0)
}
# Đoạn code đầu vào/đầu ra có sẵn: giữ nguyên
input <- suppressWarnings(readLines(file("stdin")))
stock <- c()
for (pair in strsplit(input[1], ",")[[1]]) {
kv <- strsplit(pair, "=")[[1]]
stock[kv[1]] <- as.numeric(kv[2])
}
cat(process_orders(stock, strsplit(input[2], ",")[[1]]), sep = "\n")
Tất cả bài học trong Logic và luồng điều khiển
1Chuỗi chuyên sâu
Chuỗi con với substr()Định dạng với sprintf()Tách và nối chuỗiTìm kiếm trong chuỗiThay thế văn bảnÔn tập: Tạo tên người dùng10Luồng điều khiển nâng cao
Hàm switch()ifelse() dạng vector hóarepeat và breakHàm đệ quyÔn tập: phân loại điểm2Tra cứu khóa-giá trị
Tra cứu vector theo tênKiểm tra khóaThêm và xóa khóaLặp qua các tênÔn tập: Bàn giao dịch cổ phiếuTự luyện tập: Trình biên dịch R online