1. Given two strings a and b, find the max value of "length" where for some i and j, a.substring(i, i+length) and b.substring(j, j+length) are anagrams.
2. Given two strings a and b, find the max window of matching patterns between a and b where the pattern matching doesn't have to be an exact match but also can be a permutation of each other. (which is essentially anagrams...)
Algorithm:
let m = a.length;
let n = b.length;
let matrix = int[m][n]
if a[i] == b[j] then matrix[i][j] = 1
else matrix[i][j] = 0
With the matrix populated by the routines above, find the largest square that meets the following two conditions:
- no column contains all 0s. For each column, at least one cell is 1
- no rows contains all 0s
Someone was asked the following question during interview: if m = n, would that help speeding up the complexity?
Well, I have no idea...
