5
public int regionsBySlashes(String[] grid) {6
parent = new int[4 * grid.length * grid.length];7
rank = new int[4 * grid.length * grid.length];9
for (int i = 0; i < parent.length; i++) {14
for (int i = 0; i < grid.length; i++) {15
for (int j = 0; j < grid[i].length(); j++) {16
char ch = grid[i].charAt(j);18
int bno = i * grid.length + j;21
unionHelper(4 * bno + 0, 4 * bno + 1);22
unionHelper(4 * bno + 2, 4 * bno + 3);26
unionHelper(4 * bno + 0, 4 * bno + 3);27
unionHelper(4 * bno + 1, 4 * bno + 2);31
int obno = (i - 1) * grid.length + j;32
unionHelper(4 * bno + 0, 4 * obno + 2);36
int obno = i * grid.length + (j - 1);37
unionHelper(4 * bno + 3, 4 * obno + 1);44
for (int i = 0; i < parent.length; i++) {53
public int find(int x) {57
parent[x] = find(parent[x]);62
public void union(int xl, int yl) {63
if (rank[xl] < rank[yl]) {65
} else if (rank[yl] < rank[xl]) {73
public void unionHelper(int x, int y) {