For example, the words "abca" and "zbxz" are isomorphic because we can map 'a' to 'z', 'b' to 'b' and 'c' to 'x'.
Given a String[] words, return how many (unordered) pairs
of words are isomorphic.
words will contain between 2 and 50 elements, inclusive.
words will contain between 1 and 50
lowercase letters ('a'-'z'), inclusive.
words will have the same length.
words.
{"abca", "zbxz", "opqr"}
Returns: 1
"abca" and "zbxz" are isomorphic, but none of the two is isomorphic with
"opqr".
{"aa", "ab", "bb", "cc", "cd"}
Returns: 4
The four isomorphic pairs are {"aa", "bb"}, {"aa", "cc"}, {"bb", "cc"} and {"ab", "cd"}.
{ "cacccdaabc", "cdcccaddbc", "dcdddbccad", "bdbbbaddcb",
"bdbcadbbdc", "abaadcbbda", "babcdabbac", "cacdbaccad",
"dcddabccad", "cacccbaadb", "bbcdcbcbdd", "bcbadcbbca" }
Returns: 13