问题:给定一个字符串数组words,找到这样的最大值:length(word[i]) * length(word[j]),words[i]和words[j]没有共同的字母。假设输入字符串只包含小写字母。如果不存在这样的两个字符串,则返回0。

思路:难点是判断两个字符串是否包含相同字母。可以一个个遍历找到,效率会比较低。看看用位运算能怎么做。一共26个小写字母。表示不同的字母可以用one-hot类型表示(从词向量表示方法得到的启示)。

z = 10000…000(一共25个0)
y = 01000…000(一共25个0)

a = 0000…001

用26位的二进制表示不同的字母。
这样一个字符串 abc = 000….111
azc = 100…..101
两个字符串的值做与操作。如果结果为0,则说明没有相同字符。

public int maxProduct(String[] words) {int n = words.length;int[] values = new int[n];for (int i = 0; i < n; i++) {for (int j = 0; j < words[i].length(); j++) {//这样的表示是我之前没想到的values[i] |= (1 << (words[i].charAt(j) - 'a'));}}int maxproduct = 0;for (int i = 0; i < n - 1; i++) {for (int j = i + 1; j < n; j++) {if ((values[i] & values[j]) == 0) {if (words[i].length() * words[j].length() > maxproduct) {maxproduct = words[i].length() * words[j].length();}}}}return maxproduct;}

参考资料
1 问题

318. Maximum Product of Word Lengths相关推荐

  1. leetcode 318. Maximum Product of Word Lengths | 318. 最大单词长度乘积

    题目 https://leetcode.com/problems/maximum-product-of-word-lengths/ 题解 中规中矩的题目,中规中矩的思路,不像是一个 medium 题. ...

  2. Maximum Product of Word Lengths

    Maximum Product of Word Lengths 题目链接: https://leetcode.com/problems... public class Solution {public ...

  3. LeetCode Maximum Product of Word Lengths(位操作)

    问题:给出一个字符串数组,要求求出两个没有共同字符的字符串的最大积 思路:第一种方法是直接枚举任意两个字符串,看是否有公共字符,如果没有,则计算乘积,并更新最大值. 第二种方法,因为字符范围是a-z, ...

  4. UVA11059 Maximum Product

    问题链接:UVA11059 Maximum Product.基础级练习题,用C语言编写程序. 题意简述:输入n个整数序列,有正有负,求这个序列中最大连续累乘的子序列,其最大的值为多少.如果结果为负数, ...

  5. LeetCode 152. Maximum Product Subarray--动态规划--C++,Python解法

    题目地址:Maximum Product Subarray - LeetCode Given an integer array nums, find the contiguous subarray w ...

  6. UVa 11059 - Maximum Product

    题目:最大字段积. 分析:dp,最大字段和类似物.求解过程同最大字段和. 这里注意,设置两个状态:以本元素结束时,最大正值和最小的负值. 更新时.假设data[i]为正,则相应跟新,假设data[i] ...

  7. 暴力求解——最大乘积 Maximum Product,UVa 11059

    最大乘积 Maximum Product 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84562#problem/B 解题思路 ...

  8. UVa 11059 Maximum Product

    题意:给出n个数组成的序列,求乘积最大的连续子序列 看的紫书,因为n最大为18,每个数最大为10,所以10^18用long long 能够存下, 直接枚举起点和终点找最大值就可以了 1 #includ ...

  9. 【LeetCode】152. Maximum Product Subarray

    题目: Find the contiguous subarray within an array (containing at least one number) which has the larg ...

最新文章

  1. java中运用label跳转
  2. k8s crd构建方法_告诉您正在构建没人想要的东西的8种方法(以及处理方法)
  3. 测试 远程端口 是否处于监听状态
  4. 轻量级3d模型查看器_耐能取得两项软件著作权,自研轻量级3D人脸识别算法领先业界...
  5. 《计算机组成原理》实验报告——TEC-2实验系统——微程序控制器实验
  6. WPF学习系列之二 (依赖项属性)
  7. 寓言故事中隐藏的10个成功秘诀
  8. 李洪强iOS开发之- 实现简单的弹窗
  9. C# winform打开Excel文档的方法总结!
  10. 求解偏微分方程开源有限元软件deal.II学习--Step 9
  11. Atitit 卡片管理指南规范 attilax总结(内部身份卡,饭卡,交通卡 银行卡等)
  12. 织梦网站地图html制作,dedecms织梦制作xml网站地图的方法
  13. Mybatis源码导入
  14. 笔记本系统恢复连载之九:神舟笔记本系统恢复
  15. 5G移动通信 笔记 - 系统架构与标准体系
  16. 乐高收割机器人_乐高机器人这个大坑,为啥大家都拽着孩子往里跳?(想了解乐高机器人比赛看这一篇就够了)...
  17. x86为什么是32位系统?
  18. TSP_旅行商问题 - 模拟退火算法(三)
  19. CH341A及XTW 2两种SPI FLASH烧录器的硬件使用说明_20220920【可用于升级主板BIOS】
  20. XILINX封装FBG与FFG区别

热门文章

  1. VFP参考资料word版
  2. HOJ 13828 Funfair
  3. 怎么利用GitHub
  4. Atitit.java swing打印功能 api  attilax总结
  5. CVE-2013-3897漏洞成因与利用分析
  6. 说说我最近比较迷的Criminal Minds
  7. mysql n 存储结构,MySQL体系结构和存储引擎概述
  8. 删除sessionstorage_localStorage 和 sessionStorage 介绍
  9. CentOS7 3.项目持续交付脚本
  10. 支付宝错误提示: sign check fail: check Sign and Data Fail JSON also