educative.io

Next Letter (medium)

def search_next_letter(letters, key):
n = len(letters)
if key < letters[0] or key > letters[n - 1]:
return letters[0]

start, end = 0, n - 1
while start <= end:
mid = start + (end - start) // 2
if key < letters[mid]:
end = mid - 1
else: # key >= letters[mid]:
start = mid + 1

return letters[start % n]

In this code, It seems first edge-case check is redundant which is handled by the last return statement ?

Hi @Venkatesh3,

This is Maham Amjad from Eduactive. Thank you for reaching out to us.

You’re correct. The code has been updated. Thank you.

Best Regards,
Maham Amjad | Technical Content Engineer
educative.io