Problem · Matrix

Find Min Num Moves

Learn this problem
MediumMicrosoftFULLTIMEOA
See Microsoft hiring insights

Problem statement

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.

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.

Function

findMinNumMoves(grid: String[]) → int

Examples

Example 1

grid = ["BBWWB", "WWWBW", "BWWWW"]return = 3
No explanation for now

Example 2

grid = ["BBBB", "WWWW", "BBWB", "WWWW"]return = 7
No explanation for now

Example 3

grid = ["BWB", "WBB", "WBW"]return = 4
No explanation for now

More Microsoft problems

drafts saved locally
public int findMinNumMoves(String[] grid) {
    // write your code here
}
grid["BBWWB", "WWWBW", "BWWWW"]
expected3
checking account