Ответ на этот вопрос - «невозможно». В частности, интервьюер задается вопросом, обратили ли вы внимание на уроке теории вычислений.
На уроке теории вычислений вы узнали о конечных автоматах. Конечный автомат состоит из узлов и ребер. Каждое ребро помечено буквой конечного алфавита. Один или несколько узлов являются специальными «принимающими» узлами, а один узел является «стартовым» узлом. Когда каждая буква читается из данного слова, мы пересекаем данное ребро в машине. Если мы попадаем в состояние принятия, мы говорим, что машина «принимает» это слово.
Регулярное выражение всегда можно перевести в эквивалентный конечный автомат. То есть тот, который принимает и отклоняет те же слова, что и регулярное выражение (в реальном мире некоторые языки регулярных выражений допускают произвольные функции, они не учитываются).
Невозможно построить конечный автомат, который принимает все палиндромы. Доказательство опирается на тот факт, что мы можем легко построить строку, которая требует сколь угодно большого количества узлов, а именно строку
a ^ xba ^ x (например, aba, aabaa, aaabaaa, aaaabaaaa, ....)
где a ^ x - это повторение x раз. Для этого требуется как минимум x узлов, потому что, увидев 'b', мы должны отсчитать x раз, чтобы убедиться, что это палиндром.
Наконец, возвращаясь к исходному вопросу, вы можете сказать интервьюеру, что можете написать регулярное выражение, которое принимает все палиндромы, которые меньше некоторой конечной фиксированной длины. Если когда-либо существует реальное приложение, требующее идентификации палиндромов, оно почти наверняка не будет включать в себя произвольно длинные, поэтому этот ответ покажет, что вы можете отличить теоретические невозможности от реальных приложений. Тем не менее, реальное регулярное выражение будет довольно длинным, намного длиннее, чем эквивалентная 4-строчная программа (легкое упражнение для читателя: напишите программу, которая идентифицирует палиндромы).