| 123456789101112131415161718192021222324252627 | type pair struct {	_1 int	_2 int}func maxProduct(words []string) (product int) {	n := len(words)	if n <= 1 {		return	}	pairs := make([]pair, n)	for i := 0; i < n; i++ {		mask, l := 0, len(words[i])		for j := 0; j < l; j++ {			mask |= 1 << uint(words[i][j]-'a')		}		pairs[i] = pair{mask, l}	}	for i := 0; i < n-1; i++ {		for j := i + 1; j < n; j++ {			if pairs[i]._1&pairs[j]._1 == 0 && product < pairs[i]._2*pairs[j]._2 {				product = pairs[i]._2 * pairs[j]._2			}		}	}	return}
 |