Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,914 questions

51,847 answers

573 users

How to find the second most frequent character in a string with Swift

1 Answer

0 votes
import Foundation

func secondMostFrequentCharacter(in str: String) -> Character? {
    var frequencyDict: [Character: Int] = [:]
    
    // Count the frequency of each character
    for char in str {
        frequencyDict[char, default: 0] += 1
    }
    
    // Sort characters by frequency in descending order
    let sortedFrequency = frequencyDict.sorted { $0.value > $1.value }
    
    // Check if there are at least two different frequencies
    guard sortedFrequency.count > 1 else {
        return nil
    }
    
    // Find the first character with a different frequency than the most frequent
    for i in 1..<sortedFrequency.count {
        if sortedFrequency[i].value != sortedFrequency[0].value {
            return sortedFrequency[i].key
        }
    }
    
    return nil
}

let s = "bbaddddccce"

if let secondMostFrequent = secondMostFrequentCharacter(in: s) {
    print("The second most frequent character is '\(secondMostFrequent)'")
} else {
    print("There is no second most frequent character.")
}



/*
run:

The second most frequent character is 'c'

*/

 



answered Nov 29, 2024 by avibootz

Related questions

...