Если я правильно читаю ваш вопрос, вы посмотрите, не является ли набор непалиндромов языком без контекста.
Это язык без контекста:
S --> 0S0 | 1S1 | R
R --> 0V1 | 1V0
V --> 0V0 | 1V1 | R | 1 | 0 | ε
Начиная с S, идея состоит в том, чтобы построить строку снаружи в. S позволяет вам разместить столько совпадающих единиц или нулей, сколько вы хотите (возможно, ни одного), пока не достигнете случая R, в котором есть не -матч. Оттуда вы можете размещать совпадения или несоответствия (потому что на этом этапе мы уже гарантированно не являемся палиндромом). Этого достаточно, чтобы описать все непалиндромов - снаружи внутрь , они начинаются с нуля или более совпадающих пар, затем с одной несовпадающей парой, а затем с нуля или более пар (совпадающих или нет). Наконец, в середине может быть или не быть символ.
P.S. Если у вас его еще нет, книга Сипсера по теории вычислений, несомненно, превосходна. Фактически, это единственная книга о колледже, которую я до сих пор читаю.