Microsoft OA
Anonymous User
448

You are presented with a two-dimensional grid of size N x M (N rows and M columns).
Each cell in the grid is either black ("B") or white ("w").
A row or column is considered symmetric if it reads the same forwards as it does backward.
For example, a row "BWWBWWB" is symmetric whereas "WBWB" isn't.
The same symmetry criterion applies to columns.
In one move, you can change the color in a single cell to the opposite.
Your task is to determine the minimum number of moves required to make every row and column in the grid symmetric.
Write a function:
class Solution { public int solution(String[] grid); }
that, given an array grid consisting of N strings, all of length M (each string is a single row of the grid), returns the minimum number of moves required to make all rows and columns symmetric.

Examples:

  1. Given grid = ["BBWWB", "WWWBW", "BWWWW"], the function should return 3.
    task1

  2. Given grid = ['BBBB', 'WWWW', 'BBWB', 'WWWW'], function should return 7

  3. given grid = ['BWB', 'WBB', 'WBW'], function should return 4

Comments (2)