Skip to main content
4 of 11
added 125 characters in body
Charlie
  • 13k
  • 2
  • 44
  • 100

C# (.NET Core), 58 57 bytes

s=>{int i=1;while(s[i]-s[0]<++i);return(char)(s[i-1]-1);} 

Try it online!

Previous 58-byte solution:

s=>{for(int i=1;;i++)if(s[i]-s[0]>i)return(char)(s[i]-1);} 

The following algorithm must add using System.Linq; to the byte count and therefore is longer, but I quite liked it (52+18 bytes):

s=>{int i=0;return(char)(s.First(c=>c-s[0]>i++)-1);} 

And you also have a one-liner (45+18)-byte solution:

s=>(char)(s.Where((c,i)=>c-s[0]>i).First()-1) 
Charlie
  • 13k
  • 2
  • 44
  • 100