美文网首页
swift 统计字符串中出现最多的字符和次数

swift 统计字符串中出现最多的字符和次数

作者: 听雨轩_dmg | 来源:发表于2021-06-23 14:18 被阅读0次

    废话不多说直接上代码吧

    /// 统计字符串中出现最多的字符和次数
    /// - Parameter str: 目标字符串
    /// - Returns: maxCountChar:出现最多的字符  maxCount:出现字数  sameChar:相同数量的字符
    func getAppearMaxCountChar(with str: String) -> (maxCountChar: String, maxCount: Int, sameChar: [String]) {
        
        assert(!str.isEmpty, "字符串不能为空")
    
        var tempDic: [String: Int] = [:]
        // 第一步 计算每个字符出现的次数
        for char in str.enumerated() {
            let key = "\(char.element)"
            if let count = tempDic[key] {
                tempDic[key] = count + 1
            } else {
                tempDic[key] = 1
            }
        }
      
        // 第二步 计算最大的数量
        var maxCount = 1
        for count in tempDic.values {
            maxCount = max(count, maxCount)
        }
        
        // 第三步 找出最大数量对应的字符
        var sameArray: [String] = []
        for (key, value) in tempDic {
            if value == maxCount {
                sameArray.append(key)
            }
        }
        // 如果是出现相同数量的字符 那么随便取一个返回 具体结果可在sameArray数组中查询
        return (sameArray.first!, maxCount, sameArray)
    }
    
    

    使用

    let result = getAppearMaxCountChar(with: "aaabbbbbc")
    print("出现最多的字符是\(result.maxCountChar),出现次数为\(result.maxCount)次, 相同的次数字符数组为\(result.sameChar)")
    // 结果
    // 出现最多的字符是b,出现次数为5次, 相同的次数字符数组为["b"]
    

    如有优化,欢迎留言,大家加油!!!

    相关文章

      网友评论

          本文标题:swift 统计字符串中出现最多的字符和次数

          本文链接:https://www.haomeiwen.com/subject/tgjbyltx.html