Я бы предложил небольшой конечный автомат (простой оператор switch). Потому что, если интервьюер похож на меня, первое улучшение, которое они попросят вас сделать, это полностью обрезать все начальные или конечные пробелы, чтобы:
" leading and trailing "
преобразуется в:
"leading and trailing"
вместо:
" leading and trailing "
Это действительно простая модификация конструкции конечного автомата, и мне кажется, что проще понять логику конечного автомата в целом по «прямому» кодированному циклу, даже если для этого требуется еще несколько строк код, чем прямой цикл.
И если вы утверждаете, что изменения в прямом цикле не будут слишком плохими (что можно обоснованно аргументировать), то я (как интервьюер) добавлю, что я также хочу, чтобы начальные нули из чисел были обрезается.
С другой стороны, многим интервьюерам может на самом деле не нравиться решение с автоматом состояний как «неоптимальное». Я думаю, это зависит от того, что вы пытаетесь оптимизировать.