扫码阅读
手机扫码阅读
算法题:统计字符出现的次数
150 2024-07-13
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:算法题:统计字符出现的次数
文章来源:
程序员华仔
扫码关注公众号
在学习Swift的高阶函数时,作者重新遇到了一个曾在面试中遇到的问题。他发现使用高阶函数可以简洁高效地解决问题,并且仅需4行代码,对比之前面试时的困难体验,作者感到羞愧,并记录下解决方法。
问题的解决代码示例如下:
let letters = "abcadfadfbcadfbadf4dsfassnbakeakfabcddfafba"
let newLetters = letters.reduce(into: [:]) { counts, letter in
counts[letter, default: 0] += 1
}
print("newLetters:\(newLetters)")
核心代码主要使用了Swift的高阶函数reduce
,通过遍历字符集合,并用字典记录字符及其出现次数,简单实现了功能。
执行结果生成一个字符计数的字典,作者特别指出了几个关键点:
reduce
函数有两种形式:纯reduce()
和reduce(into:)
,后者在每次操作后将结果放入新的集合中。- 在
reduce(into: [:])
中的[:]
表示一个空字典实例,而不是声明式变量。 counts[letter, default: 0] += 1
的写法提供了一种简便的方式来设置默认值并更新计数。
文章结尾作者提到对此问题的理解和实现,并邀请读者关注其公众号。
想要了解更多内容?
查看原文:算法题:统计字符出现的次数
文章来源:
程序员华仔
扫码关注公众号
程序员华仔的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线