Problema
Dado un array de caracteres letters ordenado en orden ascendente y un carácter target, devolver el menor carácter en letters que sea estrictamente mayor que target. Si no existe tal carácter, devolver el primer elemento del array (el array se considera circular).
Solución
Recorremos el array de izquierda a derecha. El primer carácter que sea estrictamente mayor que target es la respuesta, ya que el array está ordenado. Si ningún carácter cumple la condición, devolvemos el primer elemento del array.
Implementación en Rust
impl Solution {
pub fn next_greatest_letter(letters: Vec<char>, target: char) -> char {
for &c in &letters {
if c > target {
return c;
}
}
letters[0]
}
}