zoukankan      html  css  js  c++  java
  • LeetCode 318. Maximum Product of Word Lengths (状态压缩)

    题目大意:给出一些字符串,找出两个不同的字符串之间长度之积的最大值,但要求这两个字符串之间不能拥有相同的字符。(字符只考虑小写字母)。

    题目分析:字符最多只有26个,因此每个字符串可以用一个二进制数来表示它含有哪些字符。

    代码如下:

    class Solution {
    public:
        int maxProduct(vector<string>& words) {
            int maxn=0;
            int *Bit=new int[words.size()];
            fill(Bit,Bit+words.size(),0);
            for(int i=0;i<words.size();++i){
                int t=0;
                for(int j=0;j<words[i].size();++j)
                    Bit[i]|=(1<<(words[i][j]-'a'));
                for(int j=0;j<i;++j){
                    if(Bit[i]&Bit[j]) continue;
                    maxn=max(maxn,(int)(words[i].size()*words[j].size()));
                }
            }
            delete []Bit;
            return maxn;
        }
    };
    

      

  • 相关阅读:
    awk例子
    vsftp搭建
    makefile里PHONY的相关介绍
    youget帮助使用手册
    正则表达式全集
    常用的正则表达式
    基本用法
    心情
    asp.net和java
    java and asp.net
  • 原文地址:https://www.cnblogs.com/20143605--pcx/p/5178707.html
Copyright © 2011-2022 走看看