2
public int numSimilarGroups(String[] strs) {3
boolean[] visited = new boolean[strs.length]; // record the word that we checked5
for (int i = 0; i < strs.length; i++) {15
String[] strs, boolean[] visited, int index) { // explore all similar words we can explore16
visited[index] = true;17
String curr = strs[index];18
for (int i = 0; i < strs.length; i++) {19
if (!visited[i] && isSimilar(curr, strs[i])) {20
dfs(strs, visited, i);25
boolean isSimilar(String a, String b) {27
for (int i = 0; i < a.length(); i++) {28
if (a.charAt(i) != b.charAt(i)) {30
if (diff > 2) return false;