arrays - 如何编写一个接受字符串输入并打印该字符串中第一个最重复的字符的方法
问题描述
我试图制作一个可以遍历任何字符串并返回该字符串中最常见字符的函数。我的进度如下所示。我试图将字符数组插入到字典中,然后我可以打印出包含每个字符及其计数的字典。对于那些认为没有付出任何努力的人,我只是省略了我尝试过的所有代码并注释掉了。没有看到任何用处,所以只包括必需品。
let str = "sunday, monday, happy days"
var charStr = Array(str.characters)
var charDict = Dictionary<Character,Int>()
print("This is the character string array: " , charStr)
解决方案
您可以轻松地遍历您的字符并增加它在字典中的出现次数:
斯威夫特 3
let str = "sunday, monday, happy days"
var charDict: [Character: Int] = [:]
for char in str.characters {
charDict[char] = (charDict[char] ?? 0) + 1
}
print(charDict) // ["d": 3, "u": 1, "a": 4, "h": 1, ",": 2, "n": 2, " ": 3, "m": 1, "o": 1, "y": 4, "s": 2, "p": 2]
您可以在字符集合上使用 max 方法来获取字典的最大值
if let mostFrequent = charDict.max(by: { $0.value < $1.value }) {
let chars = charDict.filter { $0.value == mostFrequent.value }
.map { $0.key }
.sorted()
print("The most frequent characters are:", chars) // ["a", "y"]
print("Number of occurences:", mostFrequent.value) // 4
}
最常见的字符是:a
出现次数:4
推荐阅读
- java - JavaFX RadioButton 的方法“isSelected()”不起作用/或未正确实现
- python - 如何使用 Python 在几秒钟内转换数据类型 (dd:hh:mm:ss) “1 day, 01:00:00”
- php - 如何准备数组中的数据以存储索引 0 和索引 1 中的条目,然后存储索引 1 到索引 2 的条目?
- java - Dagger2 找不到带注释的方法
- google-maps - 删除了谷歌地图 api 密钥的 http 引用列表
- excel - 如何在启动时检索文件名
- android - avc : 拒绝 { find } for service=android.os.UpdateEngineService
- freepascal - 为什么这里的 if 语句中需要序数表达式
- c# - 不让目标保持活动状态的委托
- reactjs - React/Redux 中的 Cloudinary “被 CORS 策略阻止”。请求头域授权