MATL , 20 bytes
TiodgvYsG8XQ!"@gto?P
Entrada é uma matriz de colunas, usando ;como separador.
Experimente online!
Explicação
Considere como um exemplo a matriz de entrada [1;2;3;5;7;4;6;7;9]. A primeira parte do código Tiodgv,, converte essa matriz em [1;1;1;0;0;1;0;1;0], onde 1indica uma alteração de paridade . (Especificamente, o código obtém a paridade de cada entrada da matriz de entrada, calcula diferenças consecutivas, converte valores diferentes de zero em 1e precede a 1.)
Então Yscalcula a soma cumulativa , dando [1;2;3;3;3;4;4;5;5]. Cada um desses números será usado como um rótulo , com base no qual os elementos da entrada serão agrupados . Isso é feito por G8XQ!, que divide a matriz de entrada em uma matriz de células que contém os grupos. Neste caso, dá {[1] [2] [3;5;7] [4;6] [7;9]}.
O restante do código itera ( ") na matriz de células. Cada matriz numérica constituinte é pressionada com @g. tofaz uma cópia e calcula sua paridade . Se ( ?) o resultado for verdadeiro, ou seja, o conteúdo do array for ímpar, o array será invertido ( P).
A pilha é exibida implicitamente no final. Cada matriz vertical numérica é exibida, fornecendo uma lista de números separados por novas linhas.