public static char GetLongestDurationKey(string keysPressed, int[] releaseTimes)
char[] keys = keysPressed.ToCharArray();
int lastDuration = releaseTimes[0];
for (var i = 1; i < keys.Length; i++)
int duration = releaseTimes[i] - releaseTimes[i - 1];
if (duration > lastDuration)
else if (duration == lastDuration && keys[i] > lastKey)
public static void Main()
string keysPressed = "cbcd";
int[] releaseTimes = new int[] { 9,29,49,50 };
Console.WriteLine($"input: keys pressed: {keysPressed}; release times: {string.Join(',', releaseTimes)}");
Console.WriteLine($"output: {GetLongestDurationKey(keysPressed, releaseTimes)}");
releaseTimes = new int[] { 12,23,36,46,62 };
Console.WriteLine($"input: keys pressed: {keysPressed}; release times: {string.Join(',', releaseTimes)}");
Console.WriteLine($"output: {GetLongestDurationKey(keysPressed, releaseTimes)}");