Quitar la capa exterior

Dado un arreglo bidimensional rectangular, devuelve un nuevo arreglo bidimensional con todos los elementos excepto los de la capa exterior: elimina la primera y la última fila, y el primer y el último elemento de cada fila restante.

Ejemplos

peelLayer(std::vector<std::vector<std::string>>{{"a", "b", "c", "d"}, {"e", "f", "g", "h"}, {"i", "j", "k", "l"}, {"m", "n", "o", "p"}}) // std::vector<std::vector<std::string>>{{"f", "g"}, {"j", "k"}}

peelLayer(std::vector<std::vector<int>>{{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}, {21, 22, 23, 24, 25}, {26, 27, 28, 29, 30}, {31, 32, 33, 34, 35}}) // std::vector<std::vector<int>>{{7, 8, 9}, {12, 13, 14}, {17, 18, 19}, {22, 23, 24}, {27, 28, 29}}

peelLayer(std::vector<std::vector<bool>>{{true, false, true}, {false, false, true}, {true, true, true}}) // std::vector<std::vector<bool>>{{false}}

peelLayer(std::vector<std::vector<std::string>>{{"hello", "world"}, {"hello", "world"}}) // std::vector<std::vector<std::string>>{}

Notas

  • La cuadrícula siempre es rectangular o cuadrada.
  • Devuelve un arreglo bidimensional vacío cuando no queden elementos interiores.