如何使用给定的字符串计算给定字符串中的唯一字符并将其存储为键值对中的键值对?这里的key将是不同的字符,值将是字符串中字符的出现。
假设我输入的字符串为"hello"
。预期的输出将是:
h -> 1
e -> 1
l -> 2
o -> 1
答案 0 :(得分:2)
在将字符串拆分为字母后,我们可以使用table
来计数频率。如果需要,简单的sapply
可以将其转换为列表,即
table(strsplit('hello', ''))
#e h l o
#1 1 2 1
#or
sapply(table(strsplit('hello', '')), list)
#$`e`
#[1] 1
#$h
#[1] 1
#$l
#[1] 2
#$o
#[1] 1
答案 1 :(得分:1)
hashmap
包,但R不支持任何本地哈希图。但是,我们可以轻松地在此处使用列表来模拟哈希功能:
lst <- list()
for (i in strsplit('hello', '')[[1]]) {
lst[[i]] <- ifelse(is.null(lst[[i]]), 1, lst[[i]] + 1)
}
lst
$h
[1] 1
$e
[1] 1
$l
[1] 2
$o
[1] 1
请注意,现在访问地图中的键仅意味着访问列表中的条目,例如lst$l
返回2,因为l
在字符串hello
中出现了两次。