How to find the smallest letter in a sorted array that is larger than a given letter in Swift

1 Answer

0 votes
import Foundation

// Function to find the smallest letter greater than the given letter
func findSmallestLetterGreaterThanTarget(letters: [Character], givenLetter: Character) -> Character {
    var left = 0
    var right = letters.count - 1
    var result = letters[0] // Default to the first letter 

    while left <= right {
        let mid = left + (right - left) / 2

        if letters[mid] > givenLetter {
            result = letters[mid]
            right = mid - 1 // Narrow down to the left half
        } else {
            left = mid + 1 // Narrow down to the right half
        }
    }

    return result
}

let letters: [Character] = ["c", "e", "k", "m"] 
let givenLetter: Character = "d"

let result = findSmallestLetterGreaterThanTarget(letters: letters, givenLetter: givenLetter)

print("The smallest letter greater than '\(givenLetter)' is: \(result)")


/*
run:

The smallest letter greater than 'd' is: e

*/

 



answered Sep 22 by avibootz
...