最开始的思路: // 从长度出发,找长度最长的两个,然后判定是否包含相同字母
// 从字母出发,找出所有不包含相同字母的数组
后来觉得,先判定字母是否相同,再计算长度乘积更合适,因此选取了第二种思路,并且通过合适的方法进行判定字母相同,进行计算量简化,官方采取了位运算的思路。
Go版本
import "fmt"
func maxProduct(words []string) int {
max_len:=0;
for i:=0;i<len(words);i++{
for j:=i;j<len(words);j++{
if comparewords(words[i],words[j]){
// fmt.Println(len(words[i]))
max_len=max(len(words[i])*len(words[j]),max_len)
}
}
}
return max_len
}
func comparewords(num1 string, num2 string )bool{
// int[] arr=new int[26];
var arr [26]int
for _,value := range num1{
arr[value-'a']++
}
for _,value := range num2{
if( arr[value-'a']!=0){
return false;
}
}
return true;
}
func max(num1 int,num2 int)int{
if num1>num2{
return num1
}
return num2
}
网友评论