【发布时间】:2020-08-04 19:36:41
【问题描述】:
我花了相当多的时间试图尝试一下,但收效甚微。我基本上是在尝试解决来自 Hackerrank 在 R 上的袜子商人挑战。挑战本身非常简单,但我真的很难接受 STDIN 和 STDOUT。 可用的大多数帮助都与Python,所以我会非常感谢任何帮助。
以下是挑战的描述:
约翰在一家服装店工作。他有一大堆袜子,必须按颜色配对才能出售。给定一个代表每只袜子颜色的整数数组,确定有多少双颜色匹配的袜子。例如,有 n=7 种袜子的颜色 ar = [1,2,1,2,1,3,2]强> 。有一对颜色 1 和一个颜色 2。剩下三只奇怪的袜子,每种颜色一只。对数为 2。
功能说明:在下方编辑器中完成sockMerchant功能。它必须返回一个整数,表示可用的匹配袜子对的数量。 sockMerchant 具有以下参数:
- n: 袜子的数量
- ar:每只袜子的颜色
输入格式: 第一行包含一个整数,表示袜子的数量。 第二行包含以空格分隔的整数,描述堆中袜子的颜色。
输出格式:返回 John 可以销售的匹配袜子的总数。
这是我的简单尝试,它在 RStudio 上运行良好
sockmerchant <- function(n,ar){
unique.values <- unique(ar)
count <- rep(0, length(unique.values))
for (i in 1:length(unique.values)){
count[i] <- sum(ar == unique.values[i])
}
temp <- count/2
pairs <- floor(temp)
return(sum(pairs))
}
但是,我不确定如何使该代码符合 Hackerrank 要求的标准输入/标准输出。我的主要挑战是如何让这个函数在 Hackerrank 上可解释。我应该如何修改代码,以便它从 STDIN 读取输入并将输出打印到 STDOUT。
【问题讨论】:
-
readLines将返回一个字符向量。as.numeric会将其转换为数字向量(并将任何非数字值转换为 NA)。