每日打卡

2021-11-17 318. 最大单词长度乘积

2021-11-17  本文已影响0人  16孙一凡通工

最开始的思路: // 从长度出发,找长度最长的两个,然后判定是否包含相同字母
// 从字母出发,找出所有不包含相同字母的数组
后来觉得,先判定字母是否相同,再计算长度乘积更合适,因此选取了第二种思路,并且通过合适的方法进行判定字母相同,进行计算量简化,官方采取了位运算的思路。

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
}
上一篇下一篇

猜你喜欢

热点阅读