Different Squares 
Given a rectangular matrix containing only digits, calculate the number of different 2 × 2 squares in it.
Example 
For
matrix = [[1, 2, 1],
          [2, 2, 2],
          [2, 2, 2],
          [1, 2, 3],
          [2, 2, 1]]the output should be
different_squares(matrix) = 6Here are all 6 different 2 × 2 squares:
- 1 2
  2 2
- 2 1
  2 2
- 2 2
  2 2
- 2 2
  1 2
- 2 2
  2 3
- 2 3
  2 1Solution 
py
def different_squares(matrix):
    squares = set()
    for i in range(len(matrix) - 1):
        for j in range(len(matrix[i]) - 1):
            squares.add(
                str([
                    [matrix[i][j], matrix[i][j+1]],
                    [matrix[i+1][j], matrix[i+1][j+1]],
                ]),
            )
    return len(squares)
print(different_squares(
    [
        [5, 2, 1],
        [2, 9, 2],
        [2, 2, 2],
        [1, 2, 3],
        [2, 2, 1]
    ]
))js
function differentSquares(matrix) {
  const squares = new Set();
  for (let i = 0; i < matrix.length - 1; i++) {
    for (let j = 0; j < matrix[i].length - 1; j++) {
      squares.add(
        JSON.stringify([
          [matrix[i][j], matrix[i][j + 1]],
          [matrix[i + 1][j], matrix[i + 1][j + 1]],
        ])
      );
    }
  }
  return squares.size;
}
console.log(
  differentSquares([
    [5, 2, 1],
    [2, 9, 2],
    [2, 2, 2],
    [1, 2, 3],
    [2, 2, 1],
  ])
);