扫码阅读
手机扫码阅读

算法题:统计字符出现的次数

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的写法提供了一种简便的方式来设置默认值并更新计数。

文章结尾作者提到对此问题的理解和实现,并邀请读者关注其公众号。

想要了解更多内容?

查看原文:算法题:统计字符出现的次数
文章来源:
程序员华仔
扫码关注公众号