char_at_reverse(s, i) returns the character at i - 1 instead of s.char_len() - 1 - i.
char_at_reverse(s, i) returns the character at i - 1 instead of s.char_len() - 1 - i.