字符串长度乘积最大值 位操作
来源:互联网 发布:用eclipse写java 编辑:程序博客网 时间:2024/06/05 19:49
// "abcw" "baz" "foo" "bar" "xtfn" "abcdef"//return 16//"abcw" "xtfn"//对于单词字符串的字符出现情况我们可以使用一个哈希表来记录,由于范围限定在‘a’~'z',//我们可以直接使用26位的数组,由于只需标记字符是否出现(状态只有0和1),//因此我们只需要用一个位来表示该字符是否存在,因此我们只需要一个32位的整型变量,//其32个二进制位就可以标记字符出现情况,并且我们在匹配两个字符串出现字符是否有重复时,我们只需要使用位与(&)即可。#include <iostream>#include <stdlib.h>#include <string.h>using namespace std;#define MAXLEN 65535int maxProduct(char **words, int num) { if(num == 0) { return 0; } int res; int *mark = new int[num]; memset(mark, 0, sizeof(int) * num); for(int i = 0; i < num; i++) { int len = strlen(words[i]); for(int j = 0; j < len; j++) { mark[i] |= (1 << (words[i][j]-'a')); } } int max = 0; int curLen = 0; for(int i = 0; i < num; i++) { for(int j = i + 1; j < num; j++) { if((mark[i] & mark[j]) == 0) { curLen = strlen(words[i]) * strlen(words[j]); if(max < curLen) { max = curLen; } } } } return max;}int main(){ char *(arr[7]) = {"a", "ab", "abc", "d" ,"cd", "bcd","abcd"}; for(int i = 0; i < 7; i++) { cout << arr[i] << endl; } cout << maxProduct(arr, 7) << endl; system("pause"); return 0;}
要是我能熟练运用string类, 就好了。。。
阅读全文
0 0
- 字符串长度乘积最大值 位操作
- leetcode_318. Maximum Product of Word Lengths 求两个不相交的字符串的长度乘积的最大值,将字母转换成二进制形式,按位与比较是否有相同字母
- 求公共前缀长度与所选字符串个数的乘积的最大值 Trie树求最值 UVA 11488 Hyper Prefix Sets
- 长度N数组,计算N-1长度的子数组乘积的最大值
- 连续乘积最大值
- Byte操作(8位二进制数与长度8的0/1字符串互换)
- 找出这个1000位数字中连续5个数字乘积的最大值。
- 题目8:找出这个1000位数字中连续13个数字乘积的最大值。
- 318. Maximum Product of Word Lengths | 字符串长度相乘最大值
- jstl 获取字符串长度 字符串操作
- jstl 获取字符串长度、字符串操作
- jstl 获取字符串长度、字符串操作
- 字符串操作 - 截取字符串长度代码段
- 数组和字符串(分数统计_stat,单词的长度,乘积的末3位,计算器,旋转_rotate,进制转换1_base1,进制转换2_base2,手机键盘)
- 欧拉工程第8题 找出这个1000位数字中连续13个数字乘积的最大值
- C语言位操作--两整数中的最大值与最小值
- Redis操作字符串(字符串最大值为512M)
- 长度,最小值和最大值
- Charles最新版破解注册方法
- bzoj1013——球形空间生成器(高斯消元)
- jetpack刷到TX2上后,NVIDIA_CUDA-8.0_Samples中示例不能用问题
- 17暑假多校联赛2.1 HDU 6045 Is Derek lying?
- HDU 6045 (2017 多校训练赛2 1001)Is Derek lying?
- 字符串长度乘积最大值 位操作
- Android 使用第三方SDK—友盟实现分享功能
- 如何学习技术(任何东西),重点是什么(转自知乎)
- SpringMVC
- vue-cli安装规范
- 杭电多校 1011 Regular polygon! 题解报告
- 使用 acl 库编写多线程应用程序
- Spark编程之基本的RDD算子coalesce, repartition, checkpoint
- MongoDB四(插入文档)