字符串重复计数
Posted
技术标签:
【中文标题】字符串重复计数【英文标题】:String Duplicate count 【发布时间】:2022-01-02 23:23:45 【问题描述】:我正在尝试通过使用哈希映射从输入字符串中打印重复的计数。我不确定为什么解决方案不起作用。我来自python背景 //编写一个高效的程序来打印输入字符串中的所有重复项及其计数
func letters(inputs: String)->[Character:Int]
var result = [Character:Int]()
for input in inputs
if let value = result[input]
return [input : value]
else
result[input] = (result[input] ?? 0)+1
return [:]
letters(inputs:"geeksforgeeks")
["e": 1]
【问题讨论】:
循环中的if
条件没有意义,循环内需要的所有内容都是result[input] = result[input, default: 0] + 1
,然后循环后需要return result
【参考方案1】:
试试这个:
func letters(inputs: String) -> [Character:Int]
var result = [Character:Int]()
for input in inputs
if let value = result[input]
result[input] = value + 1
else
result[input] = 1
return result
【讨论】:
感谢您,jurah,为您提供漂亮的解决方案。请您检查一下我对您的代码的描述是否正确? if let 检查该值是否存在,如果存在,则将其出现存储在 hashmap 中。如果不存在,则将其添加到字典中。我说的对吗? @TomHiddleston,实际上您的大部分描述都是正确的。它是这样工作的:第一个“if let value”检查一个值是否存在,该值是一种整数类型,这个“result[input] = value + 1”只是增加值的编号。从技术上讲,它重写了旧值具有递增的值。它有助于您更好地理解它吗?:-)以上是关于字符串重复计数的主要内容,如果未能解决你的问题,请参考以下文章