package main
import (
"fmt"
)
// Function to find the smallest letter greater than the given letter
func findSmallestLetterGreaterThanTarget(letters []rune, givenLetter rune) rune {
left := 0
right := len(letters) - 1
result := letters[0] // Default to the first letter
for left <= right {
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
}
func main() {
letters := []rune{'c', 'e', 'k', 'm'}
givenLetter := 'd'
result := findSmallestLetterGreaterThanTarget(letters, givenLetter)
fmt.Printf("The smallest letter greater than '%c' is: %c\n", givenLetter, result)
}
/*
run:
The smallest letter greater than 'd' is: e
*/